levellistdrawable可以通过改变level值来切换相应的图片。
一:在drawablw文件夹下:
-
<?xml version="1.0" encoding="utf-8"?>
-
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
-
<item android:drawable="@drawable/lamp_on" //灯亮的图片
-
android:minLevel="12"
-
android:maxLevel="20"/>
-
<item android:drawable="@drawable/lamp_off" //灯灭的图片
-
android:minLevel="6"
-
android:maxLevel="10"/>
-
</level-list>
二:布局文件
-
<?xml version="1.0" encoding="utf-8"?>
-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-
android:orientation="vertical"
-
android:layout_width="match_parent"
-
android:layout_height="match_parent">
-
<ImageView
-
android:src="@drawable/bitmap"
-
android:layout_width="wrap_content"
-
android:layout_height="wrap_content"
-
android:id="@+id/iv_drawable"/>
-
<Button
-
android:id="@+id/btn_on"
-
android:text="light on"
-
android:layout_width="wrap_content"
-
android:layout_height="wrap_content"/>
-
<Button
-
android:id="@+id/btn_off"
-
android:text="light off"
-
android:layout_width="wrap_content"
-
android:layout_height="wrap_content"/>
-
</LinearLayout>
三:activity
-
package com.example.kirito.myapplication.testdrawable;
-
import android.os.Bundle;
-
import android.support.annotation.Nullable;
-
import android.support.v7.app.AppCompatActivity;
-
import android.view.View;
-
import android.widget.Button;
-
import android.widget.ImageView;
-
import com.example.kirito.myapplication.R;
-
/**
-
* Created by kirito on 2016.10.31.
-
*/
-
public class TestDrawable extends AppCompatActivity implements View.OnClickListener{
-
private Button on,off;
-
private ImageView iv;
-
@Override
-
protected void onCreate(@Nullable Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.testdrawable);
-
on = (Button) findViewById(R.id.btn_on);
-
off = (Button) findViewById(R.id.btn_off);
-
on.setOnClickListener(this);
-
off.setOnClickListener(this);
-
iv = (ImageView) findViewById(R.id.iv_drawable);
-
iv.setImageLevel(8);
-
}
-
@Override
-
public void onClick(View v) {
-
if (v.getId() == R.id.btn_off){
-
//设置的level值必须在6-10之间
-
iv.setImageLevel(8);
-
}else if (v.getId() == R.id.btn_on){
-
//设置的level值必须在12-20之间
-
iv.setImageLevel(18);
-
}
-
}
-
}
四:效果图