Android中实现追踪单击状态的图片按钮

Android中实现跟踪单击状态的图片按钮

    在很多情况下,我们都需要在android中自定义图片按钮,而不希望系统的东西出现,那么今天我们就来一起学习一下怎么样来实现这个简单的需求。

(1)首先,准备好一些必须的资源,我这里准备了三张图片如下:

Android中实现追踪单击状态的图片按钮

Android中实现追踪单击状态的图片按钮

Android中实现追踪单击状态的图片按钮

(2)然后我们新建一个android project,在res下面新建一个drawable文件夹,在drawable文件夹下面创建button.xml文件,文件的具体内容如下:

<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/start_b"/>
    <item android:state_pressed="false" android:drawable="@drawable/start_a"/>
</selector>
同时我们需要将图片background.jpg、start_a.png、start_b.png三张图片拷贝到drawable-hdpi文件夹下。

(3)修改layout下面的activity_main.xml,修改后的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background"
    android:gravity="center"
    android:orientation="vertical" >
	
    
    <!-- android:background="#0000" 设置ImageButton的背景为透明-->
    <ImageButton
        android:id="@+id/start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#0000"
        android:src="@drawable/button" >
    </ImageButton>

</LinearLayout>
这里我们需要注意的是,要将ImageButton的background属性设置为"#0000",这样才不会影响到我们自定义的图片按钮效果

(4)主Activity默认setContentView(R.layout.activity_main),MainActivity内容如下:

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

最后右键工程run一下我们的android application,效果如下图:

Android中实现追踪单击状态的图片按钮


最后附上完整的工程源码:

android中实现跟踪单击状态的图片按钮