所以我想设置一个ImageView
alpha。我试图使它与api 14兼容,所以我必须使用.setAlpha()
无论如何问题很简单我希望它以可见的方式淡出,但我所拥有的线程不允许UI更新。我需要在UI线程上运行它,但我需要让线程暂停一点,这样用户才能看到褪色......
现在没有可见的褪色,只是跳过下面的代码。我只需要一种方法让它淡出并让它在UI线程上更新。
***需要更新UI线程并使用暂停更改alpha以便用户可以看到alpha更改
public void onFadeClick(View view) {
runOnUiThread(new Runnable() {
@Override
public void run() {
ImageView img = (ImageView) findViewById(R.id.imageView);
for (int i = 100; i > 0; i--) {
try {
img.setAlpha(i);
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
}
for (int i = 0; i < 100; i++) {
try {
img.setAlpha(i);
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
}
答案 0 :(得分:0)
只需通过XML
执行此操作在fade.xml
res/anim
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<alpha
android:duration="1000"
android:fromAlpha="0.0"
android:repeat="reverse" //for playing back again.
android:repeatCount="0" // for playing infinitely
android:interpolator="@android:anim/decelerate_interpolator"
android:toAlpha="1.0" />
</set>
然后在你的代码中
Animation anim = Animation.loadAnimation(R.anim.fade);
youImageView.startAnimation(anim);