利用StateListDrawable给button动态设置背景
项目中,遇到相同样式的Button,只是stroke颜色不一样。为了实现一个,就得写两个shape文件,一个selector文件;多个还得重复写。
解决方法:
结合StateListDrawable给button动态设置背景
public void initButton() {
GradientDrawable fDrawable = (GradientDrawable) getResources().getDrawable(R.drawable.circle_button);
fDrawable.setColor(Color.RED);
fDrawable.setStroke(4, Color.BLUE);
GradientDrawable nDrawable = (GradientDrawable) getResources().getDrawable(R.drawable.circle_button);
nDrawable.setColor(Color.YELLOW);
nDrawable.setStroke(4, Color.GREEN);
StateListDrawable drawable = new StateListDrawable();
drawable.addState(new int[]{android.R.attr.state_pressed}, fDrawable);
drawable.addState(new int[0], nDrawable);
myButton.setBackgroundDrawable(drawable);
}
XML文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"> <solid android:color="#f2f2f2" />
<stroke
android:width="4px"
android:color="#000000" />
<corners android:radius="100dp" /> </shape>
这样,对于相同样式,不同颜色的Button,就不需要再去重复写多个XML文件了,一个文件确定样式就搞定
利用StateListDrawable给button动态设置背景的更多相关文章
- 动态设置背景图片,class,style
1.动态设置背景图片<div v-if='img ' :style="{background: 'url('+ img +')',backgroundSize:cover }" ...
- dialog中的button动态设置为disable[转]
我们再写dialog的时候,会时常有这样一种需求,希望通过某些条件将dialog的button设置为disable的. 基本的命令就是将“确定”这个button设置为disable(false). 如 ...
- :style动态设置属性
前段时间做页面时需要动态设置背景图片,每一种框架都会遇见类似的需求,特记录下来,以免不时之需: <!DOCTYPE html> <html> <head> < ...
- vue项目中,无需打包而动态更改背景图以及标题
1.背景 今天,项目经理对已完成的项目提出了一个需求,即项目的基础功能目前针对于各个基层法院都适用,而对于不同的法院,我们每次都需要前端研发来更改所属法院的法院名称以及背景图,这样对于演示者来说是非常 ...
- 【C#/WPF】Button按钮动态设置Background背景颜色
学习笔记: 在XAML中给Button设置颜色大家都懂的,本篇只是记录用C#代码动态生成的按钮设置Background背景颜色. new一个Button,设置Background时可看到该属性类型是S ...
- android 怎么动态设置button 的style
网上找了很多,还是没有直接的解决办法,button没有setstyle这个方法.因此我的解决办法如下: 直接动态设置各个属性 Button themeBtn = new Button(this); t ...
- asp.net动态设置button的Text,Enabled属性,向后台传递参数
前台代码:根据后台传递过来的参数动态设置 <asp:Button ID="Button1" runat="server" CommandArgument= ...
- android中在java代码中设置Button按钮的背景颜色
android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...
- 怎么给button设置背景颜色?【Android】
怎么给button设置背景颜色?[Android] 怎么给button设置背景颜色?[Android] 现在我想给按钮添加背景颜色,怎么做 1.android:background="@an ...
随机推荐
- Fluent动网格【12】:扩散光顺
扩散光顺是Fluent提供的另外一种常用的网格光顺方法.其基本原理是通过求解扩散方程得到网格节点的运动位移. 扩散光顺基本计算 扩散光顺通过求解 以下扩散方程来设置网格的节点位置. \[ \nabla ...
- What are some good books/papers for learning deep learning?
What's the most effective way to get started with deep learning? 29 Answers Yoshua Bengio, ...
- Linux文件属性有哪些?(共十位)
-rw-r--r-- 那个是权限符号,总共是 - --- --- --- 这几个位. 第一个短横处是文件类型识别符: - 表示普通文件: c 表示字符设备(character): b 表示块设备(bl ...
- mysql binlog日志自动清理及手动删除
说明:当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间.mysql-bin.000001mysql-bin.000002mysql-b ...
- Ubuntu下安装Kafka Manager
参考 : kafka管理器kafka-manager部署安装 下载Kafka Manager,并进行打包,由于Kafka manager是由scala写的,所以需要由sbt的支持 git clone ...
- mysql主从复制-方案2
MySQL主从介绍 (两台机器数据同步) 主:-->binlog 从:-->relaylog 主上有一个log dump线程,用来和从的I/O线程传递binlog 从上有两个线程,其中I/ ...
- git拉取远程分支到本地
git拉取远程分支到本地 一.查看远程分支 -- 查看远程分支 git branch -r 二.拉取远程分支并创建本地分支 -- 采用此种方法建立的本地分支会和远程分支建立映射关系. git chec ...
- python处理文件的换行符
我们知道在Windows平台下的换行符是\r\n,而在linux下的换行符是\n.现在写一个简单程序来测试python是如何处理这些换行符的. 准备文件data.txt,该文件在Windows平台下编 ...
- [todo] 3rd
十个 Laravel 5 程序优化技巧
- java.sql.SQLException: Field 'id' doesn't have a default value(用eclipse操作数据库时报了这种奇怪的错误)的原因与解决方法
1.错误原因 由于id在数据库表中是作为主键,但是在插入的过程中,没有给予数值,并且没有让其自增 2.解决办法 修改数据库表中的id,让其自增(在插入的过程中,不插入id数据时)