源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

android自定义按钮示例(重写imagebutton控件实现图片按钮)

  • 时间:2022-11-16 03:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:android自定义按钮示例(重写imagebutton控件实现图片按钮)
由于项目这种类型的图片按钮比较多,所以重写了ImageButton类。
[u]复制代码[/u] 代码如下:
package me.henji.widget; import android.content.Context; import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.view.View.OnFocusChangeListener; import android.view.View.OnTouchListener; import android.widget.ImageButton; /**  * 自定义图片按钮(ImageButton),按下颜色改变  * @author Leo  * @created 2013-3-15  */ public class CmButton extends ImageButton implements OnTouchListener, OnFocusChangeListener {  public CmButton(Context context) {   super(context);   this.setOnTouchListener(this);   this.setOnFocusChangeListener(this);  }  public CmButton(Context context, AttributeSet attrs) {   this(context, attrs, android.R.attr.imageButtonStyle);   this.setOnTouchListener(this);   this.setOnFocusChangeListener(this);  }  public CmButton(Context context, AttributeSet attrs, int defStyle) {   super(context, attrs, defStyle);   setFocusable(true);   this.setOnTouchListener(this);   this.setOnFocusChangeListener(this);  }  @Override  public void onFocusChange(View v, boolean hasFocus) {   // 灰色效果   ColorMatrix cm = new ColorMatrix();   cm.setSaturation(0);   if (hasFocus) {    ((ImageButton) v).getDrawable().setColorFilter(new ColorMatrixColorFilter(cm));   } else {    ((ImageButton) v).getDrawable().clearColorFilter();   }  }  @Override  public boolean onTouch(View v, MotionEvent event) {   // 灰色效果   ColorMatrix cm = new ColorMatrix();   cm.setSaturation(0);   if (event.getAction() == MotionEvent.ACTION_DOWN) {    ((ImageButton) v).getDrawable().setColorFilter(new ColorMatrixColorFilter(cm));   } else if (event.getAction() == MotionEvent.ACTION_UP) {    ((ImageButton) v).getDrawable().clearColorFilter();   }   return false;  } }
布局文件
[u]复制代码[/u] 代码如下:
<me.henji.widget.CmButton     android:id="@+id/btn_login"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:background="#00000000"     android:src="@drawable/button_login"     android:text="@string/login_login" />
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部