首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android -自定义按钮(使用选择器文件)不起作用

Android中,自定义按钮可以通过使用选择器文件来实现不同状态下的样式变化。选择器文件是一个XML文件,可以定义按钮在不同状态下的背景、文字颜色、边框等属性。

要使用选择器文件来自定义按钮,首先需要在res/drawable目录下创建一个XML文件,例如button_selector.xml。然后在该文件中定义按钮在不同状态下的样式,可以使用以下属性:

  • android:state_pressed:按钮被按下时的样式
  • android:state_focused:按钮获得焦点时的样式
  • android:state_enabled:按钮可用时的样式
  • android:state_selected:按钮被选中时的样式
  • android:state_checked:按钮被选中时的样式

以下是一个示例的button_selector.xml文件:

代码语言:txt
复制
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/button_pressed" />
    <item android:state_focused="true" android:drawable="@drawable/button_focused" />
    <item android:state_enabled="false" android:drawable="@drawable/button_disabled" />
    <item android:drawable="@drawable/button_normal" />
</selector>

在上述示例中,按钮在不同状态下的样式分别对应了button_pressed、button_focused、button_disabled和button_normal这四个drawable资源文件。

接下来,在布局文件中使用自定义按钮时,可以通过设置android:background属性来引用选择器文件,例如:

代码语言:txt
复制
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Custom Button"
    android:background="@drawable/button_selector" />

这样,当按钮处于不同状态时,会自动应用选择器文件中定义的样式。

对于自定义按钮的优势,它可以使按钮在不同状态下呈现不同的样式,提升用户体验。通过选择器文件,可以灵活地定义按钮的外观,满足不同设计需求。

自定义按钮的应用场景包括但不限于:

  1. 应用程序中的各种按钮,如登录按钮、提交按钮、确认按钮等。
  2. 在游戏中作为交互元素的按钮,如开始游戏按钮、暂停按钮等。
  3. 在应用程序中的各种表单中,如注册表单中的提交按钮、设置页面中的保存按钮等。

腾讯云提供了一系列与移动开发相关的产品和服务,其中包括移动应用开发平台、移动推送服务、移动测试服务等。您可以通过访问腾讯云官方网站了解更多相关产品和服务的详细信息。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android自定义APP全局悬浮按钮

原本想通过framelayout实现一个悬浮在其他控件上的按钮,但是觉得很麻烦,需要各个界面都要动态填充.于是想到了悬浮窗,就自定一个ImageView用于显示全局按钮....一、首先因为悬浮窗式的所以要添加权限,对于SDK =23的需要动态获取权限,我这边用的是22的 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW..." / <uses-permission android:name="android.permission.WRITE_SETTINGS"/ 二、通过application获取到全局性的WindowManager...WindowManager.LayoutParams(); public WindowManager.LayoutParams getMywmParams(){ return wmParams; } 三、自定义...$dimen"); //使用反射获取实例 Object object = clazz.newInstance(); int height = Integer.parseInt(clazz.getField

2.8K50

Android自定义实现可滑动按钮

本文实例为大家分享了Android自定义实现可滑动按钮的具体代码,供大家参考,具体内容如下 实现逻辑 1.创建一个类继承view类,实现里面的onMeasure() onDraw()方法 2.在 onMeasure...() 中需要调用setMeasuredDimension(viewWidth,viewheight),用来绘制按钮的位置区域 3.需要加载按钮的背景和滑块资源 并且转化为bitmap对象 4.获取背景图片的宽和高作为自定义控件的宽和高...布局文件 <?..."开2" : "关2", Toast.LENGTH_SHORT).show(); } } } } 自定义控件代码 package com.example.a3_; import android.content.Context...R.mipmap.toogle_slidebg); //获取背景的高度和宽度 viewWidth = bgBitmap.getWidth(); viewheight = bgBitmap.getHeight(); //背景的宽和高就是这个自定义按钮的宽和高

2.5K10

Android自定义实现滚动选择器

在开发的过程中,现有的控件满足不了功能的需求,这个时候就需要我们自定义控件了。最近在开发中需要实现滚动进行类别的选择,也就是我们所说的滚动选择器,这里我们自定义来实现这个功能。...) 5、实体类(GetConfigReq ) 6、底部弹出框布局文件 实现过程: 1、先看需要实现的效果图 [cl06ix6wls.gif] 在这里插入图片描述 2、实现自定义控件(PickerScrollView...categoryName = pickers.getCategoryName(); } }); //完成按钮...="@id/img_guanbi" android:layout_marginTop="10dp" /> 7、到这里就实现了滚动选择器的功能,主要还是自定义控件的实现...需要Demo的童鞋底部公众号回复:"滚动选择器"即可获取。 小编整理了一份Android电子书籍,需要的童鞋关注公众号回复:"e_books" 即可获取哦!

3.8K42

Android自定义图片选择器简单版

前言:图片选择器基本上是每个App必备的东西,用公认好的第三方也可以,但是自己写的改起来方便,用起来顺手,而且这东西想想可能没动手之前想想比较难,实际操作起来就很简单了,这次先主要写流程,具体优化的细节以后在写...,说通俗点,A文件夹下边有3张图片a.jpg,b.jpg,c.jpg,B文件夹下有2张图片,d.jhpg,e.jpg,我就给A和B等等这种文件夹做一个模型 public class PictureBean...{//我的想法是以每一个放图片的文件夹为一个模型 private String name;//文件夹的名字,以后会用到,具体用处可以先打开微信的图片选择器,点左下角视频和图片,弹出一个popupwindow...private String firstImageUrl;//这个文件夹下的第一张图片 private List<String imageList;//这个文件夹下的图片集合 private...等于 我们获取到的这张图片的 文件夹的绝对路径 } else if (mParentPath.equals(parentPath)) {//如果 新的图片的文件夹的绝对路径 跟上一张图片的文件夹的绝对路径相同

53110

Android自定义动画酷炫的提交按钮

www.jianshu.com/u/51d1fd73fb72 源码地址 https://github.com/lygttpod/AndroidCustomView 前言 在这里分享的是设计实现思路,仅供学习使用...其实我刚拿到设计图的时候心想,MD直接给一张gif图不就行了何必这个麻烦呐,随后冷静下来之后(其实就是抱怨之后)想想作为一名Android开发者总不能什么动画都依赖设计师吧,那样的话会显得我们开发者没什么卵用啊...如果对相关API不熟悉的话不知道会怎么去实现呐,或许你会想通过绘制线的方式,在对勾起点开始不断改变移动点的坐标进行绘制,那么怎么获取这些点的坐标呐,这里我们使用Path和DashPathEffect两个方法实现...但是机智的你应该已经发现问题了,就是感觉动画播放衔接的不是很好,那么接下来我们就处理这个问题,回到最初的效果图上,矩形变圆角和缩放成圆形是同时进行的,那么我们有什么办法可以实现动画同时播放呐,哈哈,身为老司机的想必已经知道了使用

1.6K30

Android自定义控件实现按钮滚动选择效果

本文实例为大家分享了Android实现按钮滚动选择效果的具体代码,供大家参考,具体内容如下 效果图 ?...android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView...LayoutParams.WRAP_CONTENT); tv_Params.addRule(RelativeLayout.CENTER_IN_PARENT); tv_layout.addView(tv,tv_Params); /** * 滑动选择器...; import java.util.List; /** * 滚动选择器,带惯性滑动 */ public abstract class ScrollPickerView<T extends View...mIsCirculation = true; // 是否循环滚动,默认开启 /* 不允许父组件拦截触摸事件,设置为true为不允许拦截,此时该设置才生效 当嵌入到ScrollView等滚动组件中,为了使该自定义滚动选择器可以正常工作

2.1K10

Android自定义wheelview实现滚动日期选择器

本文实例为大家分享了Android实现滚动日期选择器的具体代码,供大家参考,具体内容如下 wheelview滚动效果的View 这段时间需要用到一个时间选择器,但是不能使用日期对话框, 因为它是筛选条件框架下的...这个wheelview框架使用的类不多,就几个,还有一些资源文件。 我根据这个框架设计了日期的选择器。 主页面: ? 第一种日期选择器页面: ? 动态效果: ?...1.布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http:/...toast.setText("item " + index); toast.show(); } }); //设置原始数据 loopView.setItems(list); } } 那个日期选择器就是使用三个...R.styleable.androidWheelView_awv_dividerTextColor, 0xffc5c5c5); 其他的控制可以参考我的代码 我的项目的代码:wheelview滚动效果的View 我的代码中有一个时间的工具类,可以很方便的取到任何时间,你也可以在日期选择器中多加一个按钮

2K10
领券