我正在建立一个选择题问卷的android程序.

我的onCreate()方法中有以下内容

btnArray = new Button[5];

btnArray[0] = (Button) findViewById(R.id.bOp1);

btnArray[1] = (Button) findViewById(R.id.bOp2);

btnArray[2] = (Button) findViewById(R.id.bOp3);

btnArray[3] = (Button) findViewById(R.id.bOp4);

btnArray[4] = (Button) findViewById(R.id.bOp5);

Typeface othmanyFont = Typeface.createFromAsset(getAssets(),

"fonts/amiri.ttf");

Drawable shape = getResources().getDrawable(R.drawable.optionbutton);

for(int i=0;i<5;i++){

btnArray[i].setTypeface(myFont);

((Button)btnArray[i]).setBackgroundDrawable(shape); //Button-4 only turns red

btnArray[i].setOnClickListener(this);

}

可绘制资源“ optionbutton.xml”为“按下状态”定义了红色渐变,为其他状态定义了灰色.看起来如下

android:startColor="#bf1d00"

android:endColor="#801300"

android:angle="270" />

android:width="1dp"

android:color="#71c2eb" />

android:shape="rectangle">

android:endColor="#999"

android:angle="270" />

选择器实际上有效,但仅在最后应用的按钮上有效.无论按下5中的哪个按钮,最后一个按钮(而不是按下的按钮)只会变成红色背景.

作为调试步骤:我尝试展开for循环并更改应用背景的顺序,最后应用的按钮仅获得红色背景:

((Button)btnArray[0]).setBackgroundDrawable(shape);

((Button)btnArray[1]).setBackgroundDrawable(shape);

((Button)btnArray[2]).setBackgroundDrawable(shape);

((Button)btnArray[4]).setBackgroundDrawable(shape);

((Button)btnArray[3]).setBackgroundDrawable(shape); //Button-3 only turns red

这很混乱!

我的实现有什么问题?

android 绘制按钮,将背景可绘制的状态设置为android按钮相关推荐

  1. android在学习——Menu背景图片,背景色的设置

    今天研究了一下午,终于整出了,menu的背景图片和背景色的设置.效果如上图,呵呵不太好看啊 这我就不管了,只作为参考,你们自己看看吧.代码如下: package com.hooypay.Activit ...

  2. android canvas画渐变背景,View绘制系列(13)-Canvas渐变属性绘制

    Canvas渐变属性绘制 五颜六色,七彩缤纷.有时候我们的UI设计稿也极尽色彩之能,比如下图这样: 这种渐变效果我们能画吗?不得不说,Android系统的基础构架还是很强大的,我们可以使用Linear ...

  3. andoid点击按钮(ImageButton)时改变按钮的背景图片 SelectorDemo

    andoid点击按钮(ImageButton)时改变按钮的背景图片 SelectorDemo 博客分类: android android selector 改变按钮背景图片 主要是用到selector ...

  4. 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 自定义控件过渡绘制 | 布局文件层次深 | GPU 过渡绘制调试工具 | 背景过度绘制 )

    文章目录 一. 过度绘制 二. 过度绘制两种情况 ( 自定义控件 | 布局文件 ) 三. 过度绘制调试 1. 打开过渡绘制调试工具 2. 过渡绘制调试中不同颜色的含义 3. 过渡渲染示例 四. 背景过 ...

  5. android 带弧形背景,[Android日常]绘制弧形渐变背景

    最近要修改用户空间头部信息显示,参考了好多APP的用户空间,都有一个弧形的背景,看着挺漂亮的.实现这种效果,有两种实现方式:1.作图:2.通过代码进行绘制.今天就讲讲如何通过canvas进行绘制. 一 ...

  6. android github 评分控件_「开源」Arcgis for Android测量工具更新至V1.9,新增绘制控件...

    开源地址:https://github.com/roomanl/ArcgisTool 封装Arcgis Runtime for Android 100.6.0地图基本操作. 包括:测量工具控件及测量接 ...

  7. Android绘制基础及手写绘制实例

    Android二维图形绘制 Android提供了一系列用于二维绘制的APIs,当绘制2D图形时,通常有两种选择: 1.在一个View对象中绘制.继承View类,在子类的 onDraw()方法中写入自己 ...

  8. 【Android开发】图形图像处理技术-绘制几何图形

    常见的几何图形包括点.线.弧.矩形等.在Android中,Canvas类提供了丰富的绘制几何图形的方法,通过这些方法,可以绘制出各种几何图形.常用的几何图形的绘制方法如下所示: 1. 画一个圆使用的是 ...

  9. android studio 自动生成对象,在Android Studio中快速导入可绘制对象的方法?

    在Android Studio中快速导入可绘制对象的方法? 在Android项目中的某个时候,您将需要在res/drawable目录中导入一些可绘制对象-工具栏图标,图像,UI功能. 大多数情况下,您 ...

最新文章

  1. 速卖通新手入驻必须了解的“9大知识点”
  2. 五十六、Java的json解析库Json-lib和Gson
  3. 【NOSQL 】 memcache 安装及配置分布式集群 双向复制
  4. Python中的str与unicode处理方法
  5. [转]Extundelete--数据恢复软件
  6. mysql-linux命令登录,退出
  7. java 长方形正方形_面向对象的疑惑,java设计正方形,长方形
  8. mc服务器资源包在什么文件夹,教程/制作资源包 _ 《我的世界》中文Minecraft Wiki:最详细的官方我的世界百科...
  9. c语言中 x20是什么意思,转义字符的问题,\ x00- \ x20是什么意思
  10. js:获取今天是星期几
  11. “蓝凤凰”开网店,卖起了这么多高颜值又神奇的生物
  12. java与c互通aes加密解密
  13. 【Altium designer】PCB 各层简介
  14. JPA学习 —— 第五课、JPA常用API详解
  15. word中段落里面的选项“如果定义了文档网格,则对齐到网格”起什么作用?
  16. iOS开发-常用的数学方法
  17. 通过内网连接GaussDB
  18. P15-Windows与网络基础-NTFS权限规则
  19. 关于计算机的网络作文,关于网络的作文:网络_450字
  20. Java通过JNI调用C++动态链接库dll,并打在jar包内 ——JNA-JNI(一)

热门文章

  1. 开机出现 Invalid Partition Table 怎么办
  2. Netty网络编程聊天项目
  3. HTML+CSS详解
  4. 路径规划之基于插值的规划算法
  5. LCP 01. 猜数字
  6. 力扣——合并两个有序数组
  7. debian安装gcolor2
  8. Open3d之彩色点云配准
  9. Haclon 一些关于显示的基本算子(1)
  10. 用python生成的猜数字游戏