国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程實現文字倒影效果的方法

2019-12-12 03:30:05
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程實現文字倒影效果的方法。分享給大家供大家參考,具體如下:

我們所有的view都繼承自View類,View類里有個方法叫ondraw(). 即,我們看到的界面都是畫出來的,所以我們可以重寫ondraw()方法。

既然知道了這點就好辦了,還有個難點就是,我們的倒影也是畫出來的,那我們從哪去取原始圖片呢?熟悉View的童鞋都知道Cache這個東西,不錯,就是通過Cache我們取到了原始圖片。

放源碼了。,感謝期待。這個只是個demo,并不完善哈,布局什么的還需要調整下,或者我什么時候有空再進行一次封裝,就可以直接從布局文件中任意調整了。

布局文件中增加如下代碼

<com.tc.reflect.ReflectTextView    android:layout_marginTop="20dp"    android:id="@+id/test_reflect" android:layout_width="fill_parent"    android:layout_height="50dp" android:textSize="25dp"    android:textColor="#ff0000" android:textStyle="bold" android:gravity="top|center_horizontal"    android:text="不會飛翔的翅膀 XP.C" />    <com.tc.reflect.ReflectTextView    android:layout_marginTop="20dp"    android:id="@+id/test_reflect" android:layout_width="fill_parent"    android:layout_height="50dp" android:textSize="25dp"    android:textColor="#a0a0a0" android:textStyle="italic" android:gravity="top|center_horizontal"    android:text="titanchen2000@yahoo.com.cn" />

類代碼如下:

/* * Copyright (C) 2011 TC Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and limitations under the * License. This code is base on the Android TextView and was Created by titanchen2000@yahoo.com.cn * * @author TC */package com.tc.reflect;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.LinearGradient;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.PorterDuffXfermode;import android.graphics.PorterDuff.Mode;import android.graphics.Shader.TileMode;import android.util.AttributeSet;import android.widget.TextView;public class ReflectTextView extends TextView {  public ReflectTextView(Context context) {    super(context);  }  public ReflectTextView(Context context, AttributeSet attrs, int defStyle) {    super(context, attrs, defStyle);  }  public ReflectTextView(Context context, AttributeSet attrs) {    super(context, attrs);  }  @Override  protected void onDraw(Canvas canvas) {    //draw the text from layout()    super.onDraw(canvas);    int height = getHeight();    int width = getWidth();    //make the shadow reverse of Y    Matrix matrix = new Matrix();    matrix.preScale(1, -1);    //make sure you can use the cache    setDrawingCacheEnabled(true);    //create bitmap from cache,this is the most important of this    Bitmap originalImage = Bitmap.createBitmap(getDrawingCache());    //create the shadow    Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0,        height / 3, width, height / 3, matrix, false);    //draw the shadow    canvas.drawBitmap(reflectionImage, 0, 8 * height / 12, null);    //process shadow bitmap to make it shadow like    Paint paint = new Paint();    LinearGradient shader = new LinearGradient(0, 8 * height / 12, 0,        height, 0x70ffffff, 0x00ffffff, TileMode.CLAMP);    paint.setShader(shader);    paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));    canvas.drawRect(0, 8 * height / 12, width, height, paint);  }}

更多關于Android相關內容感興趣的讀者可查看本站專題:《Android圖形與圖像處理技巧總結》、《Android開發入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孝昌县| 海晏县| 景泰县| 抚顺县| 隆子县| 铁岭市| 大连市| 平顶山市| 噶尔县| 洪江市| 谢通门县| 上杭县| 尼木县| 谷城县| 荆州市| 友谊县| 罗山县| 玛曲县| 留坝县| 花垣县| 陕西省| 宁波市| 博湖县| 宁国市| 腾冲县| 阿拉善左旗| 海安县| 拉萨市| 曲松县| 弥渡县| 永兴县| 洞头县| 阿图什市| 张家口市| 新巴尔虎左旗| 忻城县| 左云县| 文登市| 彰武县| 鸡西市| 镇江市|