自定义开关Button

来源:互联网 发布:速写练线稿软件 编辑:程序博客网 时间:2024/05/18 00:31

<span style="font-family: Arial, Helvetica, sans-serif;">import android.graphics.drawable.Drawable;</span>
<span style="font-family: Arial, Helvetica, sans-serif;">import android.util.AttributeSet;</span>

import android.view.LayoutInflater;import android.view.View;import android.widget.FrameLayout;import android.widget.ImageView;import com.hyphenate.easeui.R;public class SwitchButton extends FrameLayout{    private ImageView openImage;    private ImageView closeImage;    public SwitchButton(Context context, AttributeSet attrs, int defStyle) {        this(context, attrs);    }    public SwitchButton(Context context) {        this(context, null);    }        public SwitchButton(Context context, AttributeSet attrs) {        super(context, attrs);                TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.SwitchButton);        Drawable openDrawable = ta.getDrawable(R.styleable.SwitchButton_switchOpenImage);        Drawable closeDrawable = ta.getDrawable(R.styleable.SwitchButton_switchCloseImage);        int switchStatus = ta.getInt(R.styleable.SwitchButton_switchStatus, 0);        ta.recycle();                LayoutInflater.from(context).inflate(R.layout.widget_switch_button, this);        openImage = (ImageView) findViewById(R.id.iv_switch_open);        closeImage = (ImageView) findViewById(R.id.iv_switch_close);        if(openDrawable != null){            openImage.setImageDrawable(openDrawable);        }        if(closeDrawable != null){            closeImage.setImageDrawable(closeDrawable);        }        if(switchStatus == 1){            closeSwitch();        }            }        /**     * 开关是否为打开状态     */    public boolean isSwitchOpen(){        return openImage.getVisibility() == View.VISIBLE;    }        /**     * 打开开关     */    public void openSwitch(){    openImage.setVisibility(View.VISIBLE);    closeImage.setVisibility(View.INVISIBLE);    }        /**     * 关闭开关     */    public void closeSwitch(){    openImage.setVisibility(View.INVISIBLE);    closeImage.setVisibility(View.VISIBLE);    }    }

布局代码


<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="wrap_content"    android:layout_height="wrap_content" >    <ImageView        android:id="@+id/iv_switch_open"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@drawable/ease_open_icon"        android:visibility="visible" />    <ImageView        android:id="@+id/iv_switch_close"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@drawable/ease_close_icon"        android:visibility="invisible" /></FrameLayout>




}
0 0
原创粉丝点击