2
我想製作一個自定義文字TextView
,這個文字就像選取框的淡入淡出效果。這是我的代碼:它不起作用。如何製作具有淡化文字的自定義TextView?
public class FadeTextView extends TextView {
private Paint mShaderPaint;
private Matrix mMatrix;
private LinearGradient mShader;
private RectF mFadingRect;
public FadeTextView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public FadeTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public FadeTextView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
mShaderPaint = new Paint();
mShader = new LinearGradient(getLeft(), getTop(), getRight(), getBottom(), 0x7FFFFFFF, 0x00FFFFFF,
TileMode.CLAMP);
mShaderPaint.setShader(mShader);
mShaderPaint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.DST_IN));
canvas.drawRect(getLeft(), getTop(), getRight(), getBottom(), mShaderPaint);
}
}
即使我想只要繪製文本,它也失敗:
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setTextSize(16);
canvas.drawText("test", getLeft(), getTop(), paint);
對不起,我不想動畫,只是想爲它太長文本衰落邊緣。謝謝! – DarkNeo
也許在你的'onDraw'你在左右兩側繪製兩個圖像,Simi透明 –
@DarkNeo:你解決了你的問題? –