Android ImageView,通过控制透明度来淡入淡出

Android ImageView,通过控制透明度来淡入淡出,android,Android,我试图构建一个wellcome屏幕,在加载初始布局时,应用程序标题会慢慢淡入 我想介绍的一种简单方法是扩展imageView类,在onDraw方法中包含淡入淡出代码,但由于某些原因,Android根本不会呈现imageView 带有静态图像的XML通常如下所示: <ImageView android:src="@drawable/logosmall" android:adjustViewBounds="true" android:layout_width="wrap_content

我试图构建一个wellcome屏幕,在加载初始布局时,应用程序标题会慢慢淡入

我想介绍的一种简单方法是扩展imageView类,在onDraw方法中包含淡入淡出代码,但由于某些原因,Android根本不会呈现imageView

带有静态图像的XML通常如下所示:

    <ImageView
android:src="@drawable/logosmall"
android:adjustViewBounds="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageLogo"/>

我只是在这里加载logosmal,效果很好,但logo从一开始就完全可见

调用自定义ImageView类的新xml几乎相同:

<com.mydomainhere.customImageView
android:src="@drawable/logosmall"
android:adjustViewBounds="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageLogo"/>

自定义类代码非常简单,我只需要重写onDraw方法并使其无效

public class customImageView extends ImageView{
    private float mAlpha = 5f;
    private float mDelta = 1f;

    public customImageView(Context context) {
        super(context);
    }

    public customImageView(Context context, AttributeSet attrs) {
        super(context);
        this.setAlpha((int)mAlpha);

    }


    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        if (mAlpha > 254){
            mDelta = -1f;
        }
        if (mAlpha < 1){
            mDelta = 1f;
        }
        mAlpha = mAlpha + mDelta;
        this.setAlpha((int)mAlpha);

        this.invalidate();    
   }

}
公共类customImageView扩展了ImageView{
私人住宅面积=5f;
专用浮点数mDelta=1f;
公共customImageView(上下文){
超级(上下文);
}
公共customImageView(上下文、属性集属性){
超级(上下文);
这是setAlpha((int)mAlpha);
}
@凌驾
公共空白onDraw(画布){
super.onDraw(帆布);
如果(mAlpha>254){
mDelta=-1f;
}
如果(mAlpha<1){
mDelta=1f;
}
mAlpha=mAlpha+mDelta;
这是setAlpha((int)mAlpha);
这个。使无效();
}
}
因此,我希望这段代码能给我一个漂亮的徽标或横幅,在最初的wellcome屏幕上淡入淡出,但Android却无法从xml中加载我的“smalllogo”

在这个阶段,我更担心是否能够在XML中使用自定义组件,以及android是否能够正确呈现XML,我一定是做错了什么,因为这对我来说非常简单

如果logo png文件是从java加载的,那么一切看起来都很好,但是看起来android无法从xml加载logo pgn文件,尽管我的类只是标准ImageView类的扩展名


提前感谢您的帮助。

您似乎需要将
attrs
参数传递给视图的父构造函数。

为什么不使用此处所述的动画:而不是将ImageView子类化

您只需修改动画,然后在加载视图时启动它