标签:android style http io ar color sp java for
package com.sample.button;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.CompoundButton;
import com.example.buttonsample.R;
public class MyButton extends CompoundButton {
public MyButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
private Drawable imgOFF;
private Drawable imgON;
public MyButton(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MyButton, 0, 0);
try {
imgOFF = a.getDrawable(R.styleable.MyButton_imgOFF);
imgON = a.getDrawable(R.styleable.MyButton_imgON);
} catch (Exception e) {
e.printStackTrace();
}
a.recycle();
}
public MyButton(Context context) {
super(context);
}
@Override
public void setChecked(boolean checked) {
super.setChecked(checked);
udpateDrawable();
}
private void udpateDrawable() {
if (this.isChecked()) {
Log.e(MyButton.class.getName(),"changing to imgON");
this.setBackgroundDrawable(imgON);
} else {
Log.e(MyButton.class.getName(),"changing to imgOFF");
this.setBackgroundDrawable(imgOFF);
}
}
@Override
protected void onFinishInflate() {
udpateDrawable();
super.onFinishInflate();
}
}
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyButton">
<attr name="imgON" format="reference" />
<attr name="imgOFF" format="reference" />
</declare-styleable>
</resources>
res/drawable/off.png
res/drawable/on.png
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.example.buttonsample"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.sample.button.MyButton
android:id="@+id/testmy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white"
app:imgOFF="@drawable/off"
app:imgON="@drawable/on" >
</com.sample.button.MyButton>
</LinearLayout>
点击按钮时,按钮会在以下2个图片之间切换.
一个简单的android自定义view(Switch Button for api < 14)
标签:android style http io ar color sp java for
原文地址:http://my.oschina.net/u/560844/blog/349395