2

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);
4

1 に答える 1

0

次のようにxmlを使用してフェードアニメーションを作成することもできます(anim/alpha.xml)それを
res/anim/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);
   }

詳細については、このアニメーション化されたスプラッシュ スクリーンを確認してください。

于 2012-11-29T07:03:23.083 に答える