Android自定义Button并设置不同背景图片的方法

本文实例讲述了Android自定义Button并设置不同背景图片的方法。分享给大家供大家参考,具体如下:

1、自定义MyButton类

public class MyButton extends Button {
//This constructormust be
public MyButton(Context context, AttributeSet attrs) {
 super(context, attrs);
 }
 public MyButton(Context context) {
 super(context);
 }
 private Paint mPaint = null;
 private String mText;
 private int mX, mY;
 public void onSetText(String text, int nLeft, int nBottom, int nTextSize,
  int nTextColor) {
 mPaint = new Paint();
 mPaint.setTextSize(nTextSize);
 mPaint.setColor(nTextColor);
 this.mText = text;
 this.mX = nLeft;
 this.mY = nBottom;
 }
 private int mDownBmpId, mUpBmpId;
 public void onSetBmp(int nDownID, int nUpID) {
 this.mDownBmpId = nDownID;
 this.mUpBmpId = nUpID;
 }
 @Override
 public void onDraw(Canvas canvas) {
 if (mPaint != null)
  canvas.drawText(mText, mX, mY, mPaint);
 super.onDraw(canvas);
 }
 @Override
 public boolean onTouchEvent(MotionEvent event) {
 if (event.getAction() == MotionEvent.ACTION_DOWN) {
  super.setBackgroundResource(mDownBmpId);
 } else if (event.getAction() == MotionEvent.ACTION_UP) {
  super.setBackgroundResource(mUpBmpId);
 }
 return super.onTouchEvent(event);
 }
}

2、 在xml布局文件中添加MyButton控件,像应用普通的Button控件一样。

<com.MyButton
  android:id="@+id/test_btn" android:layout_width="120px"
  android:layout_height="fill_parent" android:text="Test"
  android:background="@drawable/btn_u" />

其中com.MyButton是你定义的MyButton类所在的包名

3、在onCreate()中加载MyButton控件。

MyButton btn = (MyButton)findViewById(R.id.test_btn);
btn.onSetBmp(R.drawable.btn_d, R.drawable.btn_u);

其中btn_d表示为按下btn时背景图片,btn_u为默认状态下btn背景图片

更多关于Android控件相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

(0)

相关推荐

  • android 自定义ScrollView实现背景图片伸缩的实现代码及思路

       用过多米音乐的都市知道, 这个UI可以上下滑动,作用嘛---无聊中可以划划解解闷,这被锤子公司老罗称谓为"情怀",其实叫"情味"更合适.嘿嘿.如今挪动互联网开展这么迅速,市场上已不再是那早期随便敲个APP放上架就能具有几十万用户的阶段了.近来苹果公司,为了怕android下载量赶超苹果商店,大势宣称:(第 500 亿个下载应用的用户就能够获得 10,000 美元的 iTunes 礼品卡,除此之外,紧随第 500 亿以后的前 50 名用户也可以获得 500 美元

  • Android设置桌面背景图片的实现方法

    1.设置桌面背景图片的方法 复制代码 代码如下: Resources res=getResources(); BitmapDrawable bmpDraw=(BitmapDrawable)res.getDrawable(R.drawable.icon); Bitmap bmp=bmpDraw.getBitmap(); try{ setWallpaper(bmp); }catch(IOException e) { e.printStackTrace(); } 2.在manifest中增加设置桌面的

  • Android编程之手机壁纸WallPaper设置方法示例

    本文实例讲述了Android编程之手机壁纸WallPaper设置方法.分享给大家供大家参考,具体如下: /** * Andorid设置手机屏幕的壁纸 * * @description: * @author ldm * @date 2016-5-4 下午3:08:56 */ public class SetWallpaperActivity extends Activity { // WallpaperManager类:系统壁纸管理.通过它可以获得当前壁纸以及设置指定图片作为系统壁纸. priva

  • android中实现背景图片颜色渐变方法

    常用,记录一下. 效果图: 首先新建xml文件  bg_gradient.xml 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?>  <shape xmlns:android="http://schemas.android.com/apk/res/android" >        <gradient          android:startColor="

  • Android实现手机壁纸改变的方法

    本文实例讲述了Android实现手机壁纸改变的方法.分享给大家供大家参考.具体如下: main.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" androi

  • android动态壁纸调用的简单实例

    调用后动态壁纸其实是显示在Activity的后面,而Activity则是透明显示,这样就可以看到下面的动态壁纸,如果Activity不是透明的则什么也看不到. 代码中有用到两个接口 IWallpaperService mService; IWallpaperEngine mEngine; 我们可以看到该目录下面有三个aidl接口,分别是 复制代码 代码如下: interface IWallpaperConnection { void attachEngine(IWallpaperEngine e

  • Android编程之书架效果背景图处理方法

    本文实例讲述了Android编程之书架效果背景图处理方法.分享给大家供大家参考,具体如下: 在android应用中,做一个小说阅读器是很多人的想法,大家一般都是把如何读取大文件,如果在滚动或是翻页时,让用户感觉不到做为重点.我也在做一个类似一功能,可是在做书架的时候,看了QQ阅读的书架,感觉很好看,就想做一个,前面一篇<android书架效果实现原理与代码>对此做了专门介绍,其完整实例代码可点击此处本站下载. 上面的例子很不错,可是有一个问题是他的背景图的宽必须是手机屏幕的宽,不会改变,这样感

  • Android编程之动态壁纸实例分析

    本文实例讲述了Android编程之动态壁纸.分享给大家供大家参考,具体如下: 从android 2.1版本起引入了动态壁纸的概念,熟悉android的人一定不会陌生.这里解释一个动态壁纸是怎么形成又是怎么工作的. 首先动态桌面的动态体现出这个组件是实时变化的,也就是说有一个后台在不停的刷新这个组件.联想到后台组件首先想到的就是service,从代码角度看,果然如此.每一个动态桌面都继承自WallpaperService,其中必须实现的抽象方法onCreateEngine,返回一个Engine对象

  • Android 背景图片的缩放实现

    Android 背景图片的缩放 ONE Goal ,ONE Passion ! 我们看到一些效果,控件中的背景图片会慢慢变大,但是控件不会随着图片的放大而变大.效果如下: 分析: 想让图片变大,而且控件本身大小不能改变,那么就要改变图片自身大小,而不能改变控件大小. 实现原理: 1,首先拿到我们要放大的图片bitmap. 2,使用Bitmap.createBitmap().创建一个bitmap的副本. 3,使用matrix去改变图片副本本身大小 4,使用ValueAnimator去根据变化率将副

  • Android自定义Button并设置不同背景图片的方法

    本文实例讲述了Android自定义Button并设置不同背景图片的方法.分享给大家供大家参考,具体如下: 1.自定义MyButton类 public class MyButton extends Button { //This constructormust be public MyButton(Context context, AttributeSet attrs) { super(context, attrs); } public MyButton(Context context) { su

  • android自定义Dialog弹框和背景阴影显示效果

    本文实例为大家分享了android自定义Dialog弹框和背景阴影显示的具体代码,供大家参考,具体内容如下 首先需要自定义一个类,继承Dialog import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager;

  • javascript设置页面背景色及背景图片的方法

    本文实例讲述了javascript设置页面背景色及背景图片的方法.分享给大家供大家参考,具体如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus

  • Android设置PreferenceCategory背景颜色的方法

    本文实例讲述了Android设置PreferenceCategory背景颜色的方法.分享给大家供大家参考.具体分析如下: 大家可能遇到,PreferenceCategory默认是黑色背景,如何我们更换了PreferenceScreen的背景,那么这种分隔栏看上去很丑,那么怎么更改背景呢?我们可以通过自定义VIEW来实现. 代码如下: public class MyPreferenceCategory extends PreferenceCategory { public MyPreference

  • Android自定义button点击效果的两种方式

    我们在界面上经常会用到button按钮,但通常button点击后看不到点击的效果,如果用户连续点击了两次,就会报NAR错误,这样交互性就比较差了.如果我们自定义了button点击效果,比如我们点击了button能让我们看到我们确实点击了button按钮,这样就会有效的避免重复点击了. 自定义点击效果有两种方式,一种是在xml中定义,另一种是在代码中定义. 首先看一下如何在xml中定义: 在drawable下新建selector.xml文件: <?xml version="1.0"

  • Android 自定义Button控件实现按钮点击变色

    效果图如下所示: 一.shape 样式:(在drawable新建-->new-->Drawable resource file 在父级标签selector添加Item ) <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item and

  • PyQt5 实现给窗口设置背景图片的方法

    QPalette类可以十分简单的达到设置窗口背景图片的目的 def use_palette(self): self.setWindowTitle("设置背景图片") window_pale = QtGui.QPalette() window_pale.setBrush(self.backgroundRole(), QtGui.QBrush(QtGui.QPixmap("F:\A_code\PyQT_Demo\\back_ground.png"))) self.set

  • IntelliJ IDEA 2020如何设置背景图片的方法步骤

    使用idea总看小黑框很难受?眼睛疼?看不清?试试按照你的风格来定制一哈! 1.首先我们选择idea的最左上角的file 2.选择settings 3.找到Appearance&Behavior 4.点击Appearance 5.选择Background Image 之后会就可以开始设置背景图片啦O(∩_∩)O 具体的设置如图所示 图片路径最好不要更改,因为更改后idea就找不到背景图的位置了,需要我们重新设置 设置好了你们都懂点ok就好啦 到此这篇关于IntelliJ IDEA 2020如何设

  • Android自定义照相机Camera出现黑屏的解决方法

    本文实例讲述了Android自定义照相机Camera出现黑屏的解决方法.分享给大家供大家参考,具体如下: 对于一些手机,像HTC,当自定义Camera时,调用Camera.Parameters的 parameters.setPreviewSize(width, height)方法时,如果width和height为奇数情况下,则会出现黑屏现象,解决办法可参考SDK提供的ApiDemos中关于Camera的 例子: List<Size> sizes = parameters.getSupporte

随机推荐