如何在imageview

时间:2017-03-06 14:22:49

标签: android-imageview

我发现很多关于图像视图中图像更改的问题与另一个图像但我​​有不同的问题。

我必须在drawable文件夹中以xml格式显示两个svg图像。 我想在点击imageview时在图像之间切换。就像图像a.xml在那里然后点击它图像b.xml应该显示,为此我必须获取imageview的当前xml图像源并将其设置为另一个。

怎么做?

MainActivity.java:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {
ImageView iv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        iv = (ImageView) findViewById(R.id.imageView);

        iv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(v == iv){

                    if(/* How to check current current source of imagevie here  */  ){
/* How to set new xml svg source to imagevie here  */
                    }

                }

            }
        });


    }
}

xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    tools:context="com.abcd.MainActivity">


    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        app:srcCompat="@android:drawable/alert_dark_frame"
        android:src="@drawable/a"
        android:layout_centerHorizontal="true"

        android:id="@+id/imageView"
        android:layout_alignParentTop="true" />


</FrameLayout>

drawable folder containing two svg sources

1 个答案:

答案 0 :(得分:1)

找出了部分解决方案,因为我可以将新的svg源设置为imageview,但仍然可以使用当前源:

  if(v == iv){

                int k = 10;
                switch (count) {
                    case 1 :

                        iv.setImageResource(R.drawable.a);
                        k = 0 ;
                        break;
                    case 0 :
                        iv.setImageResource(R.drawable.b);
                        k=1 ;
                        break;
                }
                count = k ;

            }