2012-11-29 15 views
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); 
+0

對不起,我不想動畫,只是想爲它太長文本衰落邊緣。謝謝! – DarkNeo

+0

也許在你的'onDraw'你在左右兩側繪製兩個圖像,Simi透明 –

+0

@DarkNeo:你解決了你的問題? –

回答

0

您可以用XML也如下 (阿尼姆/ alpha.xml)使動畫漸變放入
RES /動畫/ alpha.xml

<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" 
    android:duration="3000" /> 

在Java文件

private void StartAnimations() { 
    Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha); 
    anim.reset(); 
    TextView l=(TextView) findViewById(R.id.your_textview_id); 
    l.clearAnimation(); 
    l.startAnimation(anim); 
    } 

更多的細節,你可以檢查此animated splash screen

+0

對不起,我不想動畫,只想要文本的衰落邊緣太長。謝謝! – DarkNeo

相關問題