设置Android中RadioButton的图片大小和位置

转载于:https://blog.csdn.net/weixin_36723200/article/details/53577015



设置Android中RadioButton的图片大小和位置

今天在使用RadioGroup时遇到一个问题,在布局文件中设置好RadioGroup后结果预览起来图片非常大,这根本不是我想要的效果。下面是解决问题的过程:

布局文件

 <RadioGroup
    android:id="@+id/rg_home"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:gravity="center_vertical"
    android:orientation="horizontal">

    <RadioButton
        android:id="@+id/rbtn_home_news"
        style="@style/Style_home_Rbtn"
        android:drawableTop="@drawable/selector_home_rbtn_news"
        android:text="新闻"
        />
    <RadioButton
        android:id="@+id/rbtn_home_live"
        style="@style/Style_home_Rbtn"
        android:drawableTop="@drawable/selector_home_rbtn_live"
        android:text="视频"
        />
    <RadioButton
        android:id="@+id/rbtn_home_tuijian"
        style="@style/Style_home_Rbtn"
        android:drawableTop="@drawable/selector_home_rbtn_tuijian"
        android:text="推荐"
        />
    <RadioButton
        android:id="@+id/rbtn_home_me"
        style="@style/Style_home_Rbtn"
        android:drawableTop="@drawable/selector_home_rbtn_me"
        android:text="我"
        />
</RadioGroup>

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

效果:

这是因为RadioButton继承自button,当你给RadioButton设置图片背景时,图片会被拉伸,而导致得不到我们预期的效果。

而且RadioButton并没有设置相关属性来解决这个问题,设置固定宽高是没有用的。

那么怎么解决呢?

查了一下资料,发现一种解决办法:

在代码中如下设置即可:

private void initView() {
    //定义底部标签图片大小和位置
    Drawable drawable_news = getResources().getDrawable(R.drawable.selector_home_rbtn_news);
    //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形
    drawable_news.setBounds(0, 0, 50, 50);
    //设置图片在文字的哪个方向
    rbtn_News.setCompoundDrawables(null, drawable_news, null, null);

    //定义底部标签图片大小和位置
    Drawable drawable_live = getResources().getDrawable(R.drawable.selector_home_rbtn_live);
    //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形
    drawable_live.setBounds(0, 0, 50, 50);
    //设置图片在文字的哪个方向
    rbtn_Live.setCompoundDrawables(null, drawable_live, null, null);

    //定义底部标签图片大小和位置
    Drawable drawable_tuijian = getResources().getDrawable(R.drawable.selector_home_rbtn_tuijian);
    //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形
    drawable_tuijian.setBounds(0, 0, 50, 50);
    //设置图片在文字的哪个方向
    rbtn_Tuijian.setCompoundDrawables(null, drawable_tuijian, null, null);

    //定义底部标签图片大小和位置
    Drawable drawable_me = getResources().getDrawable(R.drawable.selector_home_rbtn_me);
    //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形
    drawable_me.setBounds(0, 0, 50, 50);
    //设置图片在文字的哪个方向
    rbtn_Me.setCompoundDrawables(null, drawable_me, null, null);
}

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

这样就解决了这个问题。



设置Android中RadioButton的图片大小和位置

猜你喜欢

转载自blog.csdn.net/qq_41979349/article/details/82459388