更换radiobutton中的图片在xml中很好设置,但对于初学者如何在代码中设置还是不容易找的。没法子,通过看原版api找到两个方法,setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds。

下面交给大家方法。

第一个方法:setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom)

api原文为:

Sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text. Use null if you do not want a Drawable there. The Drawables' bounds will be set to their intrinsic bounds.

意思大概就是:可以在上、下、左、右设置图标,如果不想在某个地方显示,则设置为null。图标的宽高将会设置为固有宽高,既自动通过getIntrinsicWidth和getIntrinsicHeight获取。——笔者翻译

1                 button = (RadioButton) group.getChildAt(i);
2                 Resources res = TabTest.this.getResources();
3                 Drawable myImage = res.getDrawable(R.drawable.home);
4                 button.setCompoundDrawablesWithIntrinsicBounds(null, myImage, null, null);

如图第一个按钮:

  

第二种方法:setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom)

api原文为:

Sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text. Use null if you do not want a Drawable there. The Drawables must already have hadsetBounds(Rect) called.

意思大概就是:可以在上、下、左、右设置图标,如果不想在某个地方显示,则设置为null。但是Drawable必须已经setBounds(Rect)。意思是你要添加的资源必须已经设置过初始位置、宽和高等信息。——笔者翻译

这下就明白了,这个方法要先给Drawable设置setBounds(x,y,width,height);

x:组件在容器X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度 height:组件的高度。

如代码:

1                 Resources res = TabTest.this.getResources();
2                 Drawable myImage = res.getDrawable(R.drawable.home);
3                 myImage.setBounds(1, 1, 100, 100);
4                 button.setCompoundDrawables(null, myImage, null, null);

只要调整好宽和高。效果也是一样的。这个方法的好处就是不按比例,宽高可以打破原有的大小及比例!如图,我调的y轴有点不对齐。

总结:radiobutton设置不同方位的图标的方法有以上两种,如果想手动设置大小的话就要用setCompoundDrawables,事先要给Drawable设置setBounds。

如果按照原有比例大小显示图片就使用setCompoundDrawablesWithIntrinsicBounds

通过代码设置radiobutton不同方位图标的两种方法相关推荐

  1. 经由过程代码设置radiobutton不合方位图标的两种办法

    调换radiobutton中的图片在xml中很好设置,但对于初学者如安在代码中设置还是不轻易找的.没办法,经由过程看原版api找到两个办法,setCompoundDrawables和setCompou ...

  2. html+input改变图标,JS Input里添加小图标的两种方法

    我们在做网页的时候,经常需要在input里面添加小图标,那么这里就介绍比较常见的两种方法. 将小图标当做input的背景来插入,直接上代码吧: Box{ height: 50px; backgroun ...

  3. html密码框怎么添加小图标,JS Input里添加小图标的两种方法

    我们在做网页的时候,经常需要在input里面添加小图标,那么这里就介绍比较常见的两种方法. 方法一 将小图标当做input的背景来插入,直接上代码吧: *{ margin: 0; padding: 0 ...

  4. input 单击 图标_JS Input里添加小图标的两种方法

    我们在做网页的时候,经常需要在input里面添加小图标,那么这里就介绍比较常见的两种方法. 方法一 将小图标当做input的背景来插入,直接上代码吧: *{ margin: 0; padding: 0 ...

  5. 【Markdown】 实现上角标和下角标的两种方法(详细讲解!!!)

    作者:MiTu_-_ 本帖内容著作权归作者所有,转载请务必保留本文链接 Markdown实现上下角标的两种方法 第一种 使用Markdown自带的代码格式: 下标: ~ (内容) ~ 例:H2O H~ ...

  6. html设置word页边距,word怎样设置页边距的两种方法

    有些时候,我们需要设置一下word文档的页边距,来增添文字输入空间和获得一个较好的布局,那么怎么来设置呢?那么下面就由学习啦小编给大家分享下word设置页边距的技巧,希望能帮助到您. word设置页边 ...

  7. php设置背景为透明,css如何设置背景颜色透明?css设置背景颜色透明度的两种方法介绍...

    在网页布局中有时为了网页的整体美观,可能需要将网页中的某些部分设置为背景颜色透明,那么如何设置背景颜色透明呢?本篇文章就来给大家介绍一下css设置背景颜色透明的方法. 在css中设置背景颜色透明的方法 ...

  8. css如何设置背景颜色透明?css设置背景颜色透明度的两种方法介绍

    在网页布局中有时为了网页的整体美观,可能需要将网页中的某些部分设置为背景颜色透明,那么如何设置背景颜色透明呢?本篇文章就来给大家介绍一下css设置背景颜色透明的方法. 在css中设置背景颜色透明的方法 ...

  9. CSS设置背景颜色透明的两种方法

    在css中设置背景颜色透明的方法有两种: 一种是通过rgba方法设置,另一种是通过backgroundh和opacity设置 下面分别是css中 两种方法实现的背景颜色透明实例 1,通过backgro ...

  10. 华硕主板无盘启动bios设置_最新华硕主板进BIOS设置U盘启动的两种方法

    华硕这家台湾企业在主板领域一直是处于领头羊的地位,旗下的主板以质量优异获得大量用户的青睐.下面小编就讲讲最新华硕主板如何进bios设置u盘启动,在此介绍两种方法. 方法一:利用启动热键快速设置 1.开 ...

最新文章

  1. SCCM2012R2之二安装SQL Server
  2. java正则表达式 文件后缀名_正则表达式 判断文件名后缀是否为 csv xls xlsx
  3. 【转】selector函数指针回调机制
  4. java oralce merge_Oracle数据库merge into的使用,存在则更新,不存在则插入
  5. iOS 16要来了:速度更快、UI改动明显?苹果WWDC大会或将在线下举行
  6. 【Oracle批量更新】根据一个大表批量更新另一大表的方法比较
  7. 线性链表的建立与插入-----数据结构与算法笔记
  8. dell主板恢复出厂设置_如何清除DELL电脑主板CMOS信息并恢复默认设置
  9. 谦虚的向大家问个技术问题,树型结构的排序问题
  10. npm connect ETIMEDOUT
  11. 经验分享 针式打印机经典案例分析
  12. 云片网短信模版自定义变量的替换内容
  13. 7-1 电话聊天狂人 (25 分)
  14. 在线暴躁:script /问题
  15. balsamiq原型工具
  16. 使用canvas画一个流星动画送给她吧
  17. Mysql中事务是什么?有什么用?
  18. LCS算法:最长公共子序列
  19. 带滤波器的PID控制仿真-3(Simulink仿真)
  20. R | 如何更新R版本及Rstudio

热门文章

  1. Mysql中Drop,Truncate,Delete的区别
  2. Tensorflow:批归一化和l1l2正则化
  3. C语言获取系统时间的函数
  4. keras load model 并保存特定层 (pop) 的权重save new_model
  5. 软件开发模型_为什么越来越多软件开发团队都放弃了瀑布模型?
  6. easyui的tree获取父节点_通过DOM API 查找节点
  7. 蓝桥杯2018年第九届C/C++省赛B组第三题-乘积尾零
  8. Ubuntu 磁盘自动挂载解决
  9. Futter基础第9篇: 实现页面跳转、跳转传值(命名路由、命名路由传值)
  10. Android 补间动画(二)