在我的应用程序中,我想覆盖进度条的默认外观。默认值为矩形并具有加载动画。那么,我做了什么?
首先在res / drawable中我创建了loadinganim.xml(loading01-6是我的.png图像)。
<?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/loading01" android:duration="300" />
<item android:drawable="@drawable/loading02" android:duration="300" />
<item android:drawable="@drawable/loading03" android:duration="300" />
<item android:drawable="@drawable/loading04" android:duration="300" />
<item android:drawable="@drawable/loading05" android:duration="300" />
<item android:drawable="@drawable/loading06" android:duration="300" />
</animation-list>
然后在res \ layout中,我创建了另一个名为layout_loading.xml的xml文件。
<?xml version="1.0" encoding="utf-8"?>
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/blankImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/loading01"/>
在代码中,我有一个按钮,按下它时会出现进度条。代码是:
private ProgressDialog progressBar;
private AnimationDrawable myAnimation;
Button btnCustom1 = (Button) findViewById(R.id.custom1);
btnCustom1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
progressBar = ProgressDialog.show(MainActivity.this, "", "");
progressBar.setContentView(R.layout.layout_loading);
progressBar.setCancelable(true);
final ImageView imageView = (ImageView) progressBar.findViewById(R.id.blankImageView);
imageView.setBackgroundResource(R.drawable.loadinganim);
myAnimation = (AnimationDrawable) imageView.getBackground();
myAnimation.start();
}
});
问题是当我点击按钮时,图像会显示但没有动画。喜欢以下图片。请告诉我如何运行动画?或者我的错在哪里?
感谢您帮助我。
答案 0 :(得分:0)
我找到了答案。
实际上上面的代码没有问题,也没有问题。不显示动画的原因是因为Android 2.3.3(API 10)中的错误(至少,我认为)。当我在其他模拟器(API 15)上运行该项目时,它的动画效果很好而且没有任何问题。
因此,嘿谷歌家伙,请做点什么,这是一个真正的错误。