使用onDraw扩展android按钮

使用onDraw扩展android按钮,第1张

概述我想改变我的按钮形状,但我想使用onDaw方法和EXTENDING按钮 类.所以我刚开始做的是: <view class = "com.example.button.MainActivity$MyButton" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 和 pub 我想改变我的按钮形状,但我想使用onDaw方法和EXTENDING按钮
类.所以我刚开始做的是:

<vIEw class = "com.example.button.MainActivity$Mybutton"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"     />

public static class Mybutton extends button {     public Mybutton(Context context) {      super(context);     }     public Mybutton(Context context,AttributeSet attrs) {      super(context,attrs);     }     public Mybutton(Context context,AttributeSet attrs,int defStyle) {      super(context,attrs,defStyle);     }     @OverrIDe     protected voID onDraw(Canvas canvas) {            Paint paint = new Paint();            paint.setcolor(color.BLUE);            paint.setstrokeWIDth(10);            paint.setStyle(Style.FILL);            int wIDth = getWIDth();            int height = getHeight();            canvas.drawCircle(wIDth/2,height/2,height/3,paint);      } }

但我在按钮视图矩形上得到一个蓝色圆圈.

我想看到蓝色圆圈作为按钮形状,我得到了矩形的骑行.
任何帮助?

解决方法 在xml中将背景设置为透明(就像 hypd09所说)并覆盖ontouchListener,这样只有点击蓝色圆圈时点击才有效.

setontouchListener控制点击位置是否在蓝色圆圈内.您可以像this一样获得触摸位置.

您甚至可以允许以下列方式设置onClickListener(将其添加到Mybutton类):

@OverrIDepublic voID setonClickListener(final OnClickListener onClickListener) {    Mybutton.this.setontouchListener(new OntouchListener() {        @OverrIDe        public boolean ontouch(VIEw v,MotionEvent event){            if (isWithinCircle(event))            {                onClickListener.onClick(v);            }        }    });}
总结

以上是内存溢出为你收集整理的使用onDraw扩展android按钮全部内容,希望文章能够帮你解决使用onDraw扩展android按钮所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1125264.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存