我遇到的问题无法解决,无法完成我的应用。
我有2张图片(例如,在Assets文件夹中有1张红色,1张绿色)。现在我想显示1 GIF图像。这意味着首先它显示红色图像然后显示绿色,然后连续显示红色并重复很长时间,直到USER按下电话上的后退按钮。对此有何解决方案? (如果我有不同的文件夹,每个文件夹有不同数量的图像)
我已经使用Java库来显示资产中的图像
提前感谢!
答案 0 :(得分:1)
在drawable / green_red.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="@color/green" android:duration="200" />
<item android:drawable="@color/red" android:duration="200" />
</animation-list>
在您的活动中
ImageView iv = (ImageView) findViewById(R.id.green_red);
animation = (AnimationDrawable) iv.getBackground();
animation.start();
布局中的
<ImageView
android:id="@+id/green_red"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/green_red"/>
答案 1 :(得分:0)
您可以在活动中以编程方式执行此操作。
喜欢这个 -
public class TestActivity extends AppCompatActivity {
boolean isGreen = true;
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView)findViewById(R.id.image);
handler.postDelayed(runnable, 500);
}
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
if(isGreen)
{
isGreen = false;
imageView.setImageResource(R.drawable.red_image);
}
else
{
isGreen = true;
imageView.setImageResource(R.drawable.green_image);
}
handler.postDelayed(this, 500);
}
};
@Override
public void onBackPressed() {
super.onBackPressed();
handler.removeCallbacks(runnable);
}
}
试试这个肯定会帮到你。