在Android中显示更多类似GIF图像的图像

时间:2017-01-07 14:06:33

标签: android

我遇到的问题无法解决,无法完成我的应用。

我有2张图片(例如,在Assets文件夹中有1张红色,1张绿色)。现在我想显示1 GIF图像。这意味着首先它显示红色图像然后显示绿色,然后连续显示红色并重复很长时间,直到USER按下电话上的后退按钮。对此有何解决方案? (如果我有不同的文件夹,每个文件夹有不同数量的图像)

我已经使用Java库来显示资产中的图像

提前感谢!

2 个答案:

答案 0 :(得分:1)

使用AnimationDrawable

在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);
    }
}

试试这个肯定会帮到你。