Android动态封装圆角,按下效果的背景

原创 2015年07月08日 17:04:15
/**

* @param RADIUS
*            角度
* @param normalFileName
*            正常颜色
* @param pressFileName
*            点击颜色
* @param type
*            -1:left 0:center 1:right 2:四角圆角
* @return
*/
public static StateListDrawable addDrawable(int RADIUS, int normalFileName,
int pressFileName, int type) {
StateListDrawable sd = new StateListDrawable();


if (RADIUS != 0) {
float[] float1 = null;


if (type == -1) {
float1 = new float[] { 0, 0, 0, 0, 0, 0, RADIUS, RADIUS };


} else if (type == 0) {
float1 = new float[] { 0, 0, 0, 0, 0, 0, 0, 0 };


} else if (type == 1) {
float1 = new float[] { 0, 0, 0, 0, RADIUS, RADIUS, 0, 0 };


} else if (type == 2) { // 设置四个角为圆角
float1 = new float[] { RADIUS, RADIUS, RADIUS, RADIUS, RADIUS,
RADIUS, RADIUS, RADIUS };


} else {
float1 = new float[] { 0, 0, 0, 0, RADIUS, RADIUS, RADIUS,
RADIUS };
}


GradientDrawable gd = new GradientDrawable();
gd.setCornerRadii(float1);
gd.setColor(normalFileName);
GradientDrawable gd2 = new GradientDrawable();
gd2.setCornerRadii(float1);
gd2.setColor(pressFileName);


int pressed = android.R.attr.state_pressed;
int window_focused = android.R.attr.state_window_focused;
int focused = android.R.attr.state_focused;
int selected = android.R.attr.state_selected;
sd.addState(new int[] { pressed, window_focused }, gd2);
sd.addState(new int[] { pressed, -focused }, gd2);
sd.addState(new int[] { selected }, gd2);
sd.addState(new int[] { focused }, gd2);
sd.addState(new int[] {}, gd);
return sd;


} else {
GradientDrawable gd = new GradientDrawable();
gd.setColor(normalFileName);
GradientDrawable gd2 = new GradientDrawable();
gd2.setColor(pressFileName);
int pressed = android.R.attr.state_pressed;
int window_focused = android.R.attr.state_window_focused;
int focused = android.R.attr.state_focused;
int selected = android.R.attr.state_selected;
sd.addState(new int[] { pressed, window_focused }, gd2);
sd.addState(new int[] { pressed, -focused }, gd2);
sd.addState(new int[] { selected }, gd2);
sd.addState(new int[] { focused }, gd2);
sd.addState(new int[] {}, gd);
return sd;
}


}

Android自定义TextView实心圆角颜色背景(动态改变圆角背景颜色)

最近根据项目需求自定义了一个TextView控件,主要用来做状态的标识,比如一个订单状态有各种,当然了这种设置在Android中可以直接用xml文件来处理,但是对于xml文件太过于麻烦,针对不同的颜色...
  • lplj717
  • lplj717
  • 2016年09月22日 17:13
  • 2774

Android button 圆角动态更改背景颜色

圆角button实现(左下角和右下角为圆角) 如果有背景图片切换,可以定义属性             android:id="@+id/ok_btn"             android:l...
  • u010473556
  • u010473556
  • 2016年10月31日 08:40
  • 1178

android开发笔记之Button的圆角和按下效果

1.效果图: 2.
  • hfreeman2008
  • hfreeman2008
  • 2014年11月23日 23:13
  • 3855

android 背景边框变圆角的几种方法

转载:http://zhoubo526.iteye.com/blog/832968  导读:1.配置文件实现   斑竹学院提醒您:本篇文章《android 背景圆角以及图片圆角处理》来源于互联网...
  • swust_chenpeng
  • swust_chenpeng
  • 2013年09月12日 11:31
  • 24482

Android 设置圆角按下改变颜色按钮

在drawable文件夹下新建xml: ...
  • libertine1993
  • libertine1993
  • 2016年03月13日 14:46
  • 444

android TextView 的圆角背景

实现方法: 定义类继承自Shape画成圆角矩形 public class MyShape extends Shape{         @Override         public...
  • liu_zhen_wei
  • liu_zhen_wei
  • 2012年03月20日 15:31
  • 5429

改变ListView的item条目按下瞬间的背景

由于自己练习做项目的时候,要改变ListView点击按下瞬间的背景,花了不少时间找资料,问朋友,终于解决了。这里记录下来,当做笔记。 第一步:要把listSelector的设置为透明的颜色,因为它默...
  • linxi7
  • linxi7
  • 2016年07月20日 15:16
  • 1721

关于自定义drawable圆角,代码中动态修改边线及填充色

1.关于自定义的背景显示,本来是选择动态添加背景图片,但是需要判断的情况有三十几种,自定义多种背景或根据状态判断再显示图片显然都十分麻烦,感觉系显示的风格也很不好。网络上找了一下相关的文章,把自己的解...
  • fallingstar2011
  • fallingstar2011
  • 2016年12月17日 14:40
  • 2513

Android 根据从服务器中获取的rgb值实现动态改变圆角加框的Imageview 的背景色

先上图,效果图如上。 本来考虑用facebook的SimpleDraweeView 来实现圆角加框的,但并非所有的图片分支部分都可以实现圆角,目前只有占位图片和实际图片可以实现圆角。 后来使用自...
  • Cute_Code
  • Cute_Code
  • 2017年03月22日 17:01
  • 622

Android 动态修改自定义drawable圆角,修改边线及填充色

最近项目中遇到这样一个要求,自定义的圆角按钮,要根据后台返回的颜色进行自定义颜色修改和边框修改 这个是我自定xml定义的一个带圆角边框的背景 现在后台返回的颜色.需要代码...
  • wolfking0608
  • wolfking0608
  • 2018年01月04日 13:45
  • 323
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android动态封装圆角,按下效果的背景
举报原因:
原因补充:

(最多只允许输入30个字)