Android ImageView之切换图片

来源:互联网 发布:微信端口开发 编辑:程序博客网 时间:2024/05/18 01:56

Note_ChangeImage:

android中ImageView切换图片,主要是ImageView的setImageBitmap和setImageDrawable方法。

● setImageBitmap使用外部图片
● setImageDrawable使用drawable资源

使用Bitmap

布局文件:

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/bg1"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <ImageView        android:id="@+id/ima_door"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true"        android:src="@drawable/pictures" /></RelativeLayout>

pictures.xml

<?xml version="1.0" encoding="utf-8"?><level-list xmlns:android="http://schemas.android.com/apk/res/android" >    <item        android:drawable="@drawable/closedoor"        android:maxLevel="1"/>    <item        android:drawable="@drawable/opendoor"        android:maxLevel="2"/></level-list>

部分代码如下:

MainActivity.java

public class MainActivity extends Activity {    private ImageView ima_door;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_main);        ima_door = (ImageView) findViewById(R.id.ima_door);        ima_door.setOnClickListener(new OnClickListener() {            private boolean OPENDOOR = false;            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                if (!OPENDOOR ) {                    ima_door.getDrawable().setLevel(2);                    ima_door.setVisibility(View.VISIBLE);                    OPENDOOR = true;                }else if (OPENDOOR) {                    ima_door.getDrawable().setLevel(1);                    ima_door.setVisibility(View.VISIBLE);                    OPENDOOR = false;                }            }        });    }}

使用drawable资源

布局文件:

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/bg1"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <ImageView        android:id="@+id/ima_door"        android:layout_width="110dp"        android:layout_height="180dp"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true"        android:src="@drawable/closedoor" /></RelativeLayout>

部分代码如下:

MainActivity.java

public class MainActivity extends Activity {    private ImageView ima_door;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_main);        ima_door = (ImageView) findViewById(R.id.ima_door);        ima_door.setOnClickListener(new OnClickListener() {            private boolean OPENDOOR = false;            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                if (!OPENDOOR) {                    ima_door.setImageResource(R.drawable.opendoor);                    //或者改为ima_door.setImageDrawable(getResources().getDrawable(R.drawable.opendoor));                    OPENDOOR = true;                }else if(OPENDOOR){                    ima_door.setImageResource(R.drawable.closedoor);                    //或者改为ima_door.setImageDrawable(getResources().getDrawable(R.drawable.closedoor));                    OPENDOOR = false;                }            }        });    }}

最终界面展示:

点击门将其打开, 再次点击门会关闭

这里写图片描述

原创粉丝点击