我想像进度条一样使用动画。
我有xml文件prog_drawable.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false" >
<item
android:drawable="@drawable/progress01"
android:duration="100"/>
<item
android:drawable="@drawable/progress02"
android:duration="100"/>
<item
android:drawable="@drawable/progress03"
android:duration="100"/>
<item
android:drawable="@drawable/progress04"
android:duration="100"/>
<item
android:drawable="@drawable/progress05"
android:duration="100"/>
</animation-list>
文件progress0x.png看起来像这样(例如)
此文件中的背景是透明的。
在活动的布局xml我有imageview
<RelativeLayout
android:id="@+id/loadingPanel"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/tv_logo2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ImageView
android:id="@+id/iv_pb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_logo2"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:background="@android:color/transparent"
android:contentDescription="@string/app_name" />
</RelativeLayout>
然后在java文件中
AnimationDrawable ad;
ImageView iv_pb;
...
iv_pb = (ImageView)findViewById(R.id.iv_pb);
iv_pb.setBackgroundResource(R.drawable.prog_drawable);
ad = (AnimationDrawable)iv_pb.getBackground();
ad.start();
当我启动我的应用程序时,我看到了这个动画,但是背景为黑色。我怎样才能获得透明的背景?
答案 0 :(得分:3)
即使您将android:background="@android:color/transparent"
设置为ImageView
透明背景,但调用iv_pb.setBackgroundResource(R.drawable.prog_drawable);
会覆盖此设置,导致您的动画可绘制设置为新背景。
因此,最终您需要在图像文件中实现透明度。确保所有文件都在.png
中,背景设置为透明。