最初のレイアウトがロードされるときにアプリケーションバナーがゆっくりとフェードインするようなウェルカムスクリーンを構築しようとしています。透明度を制御してフェードイン/フェードアウトするAndroid ImageView
単純なアプローチでは、imageViewクラスを拡張してフェードアウトコードをonDrawメソッドに追加するだけですが、何らかの理由でAndroidがImageViewをまったく表示しないことがあります。
このように見えるように使用される静的イメージとXML:私はちょうどここにlogosmallロードし、それは素晴らしい動作しますが、ロゴは最初から完全に見える
<ImageView
android:src="@drawable/logosmall"
android:adjustViewBounds="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageLogo"/>
。
と私のカスタム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();
}
}
だから私は私の最初のウェルカム画面で中とフェードアウトの素敵なロゴやバナーを与えるために、このコードを期待していたが、Androidのは、どういうわけか、私のすべてでXMLから「ありがとうございますSmallLogo」をロードするために失敗しています。
この段階では、XMLでカスタムコンポーネントを使用する能力があり、アンドロイドがXMLを正しくレンダリングできるかどうか心配しています。これはかなり簡単です。
Javaからすべてのロゴpngファイルがロードされていても、問題なく表示されますが、標準のImageViewクラスのクラスであってもxmlからロゴpgnファイルを読み込むことができません。
ご協力いただきありがとうございます。