android - 如何以编程方式多次更改 ImageView 源?

标签 android imageview

一旦图像被按下,它就会改变并播放声音。播放完声音后,我希望返回到之前的图像(相同的 ImageView),但这并没有发生。

xml代码:

<ImageView
    android:id="@+id/imageView_red_off"
    android:src="@drawable/red_orig"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:adjustViewBounds="true"
    android:maxHeight="160dp"
    android:maxWidth="150dp"
    android:layout_gravity="top|left"
    android:paddingRight="40dp"
    android:paddingLeft="0dp"
    android:scaleType="fitCenter"
/>

java代码:

public boolean onTouch(View view, MotionEvent event) {
.
.
.

    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        if (colorRed > threshold)) {
            whatColor = "Red";
            imageRed.setImageResource(R.drawable.red);
        }
   .
   .
   .
   }

playSound(whatColor);
imageRed.setImageResource(R.drawable.red_orig);
.
.
.
}

在播放方法中:

if ((color != "None")) {
    MediaPlayer mp = MediaPlayer.create(this, animal);
    mp.start();
    mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            mp.release();
        };
    });
}

谢谢。

最佳答案

你应该做这样的事情。

假设图像在用户触摸时设置了 img1,现在当 MediaPlayer 完成播放时您可以使用 setOnCompletionListener 更改它的 img 播放完成后使用 imageview 对象更改图像而不是在图像的 OnTouch 中执行.

如下所示:

MediaPlayer mp = MediaPlayer.create(this, animal);
    mp.start();
    mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            mp.release();
          if(img.getTag().equal("second")){
             //Then set first image here 
           }
        };
    });

关于android - 如何以编程方式多次更改 ImageView 源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29250535/

相关文章:

android - IsolatedContext 与 AndroidTestCase.getContext()

android - 拉动缩放动画

java - 将图像预加载到变量中

android - 将 Uris 数组添加到 GridView 中

android - 我想将图像存储在从图库和相机 android 中获取的 sqlite 数据库中

java - 从一个 Activity 启动 AsyncTask,在另一个 Activity 中获取结果

php - android连接mysql数据库的url

android - 我在为 Phonegap 安装 android 平台时遇到错误?

android - Room 中的 RunInTransaction 方法

java - 如何制作 ImageView 数组并在 for 循环中将它们设置为 enabled(false)