`
RandyWei
  • 浏览: 67015 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

带图标的button setCompoundDrawablesWithIntrinsicBounds

 
阅读更多

TextView 的setCompoundDrawablesWithIntrinsicBounds与setCompoundDrawables的区别是什么?

大沙发,同问。
public void  setCompoundDrawables  (Drawable left, Drawable top, Drawable right, Drawable bottom)
Since: API Level 1

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 had setBounds(Rect) called.
----------------------------------------------------------- 
public void  setCompoundDrawablesWithIntrinsicBounds  (Drawable left, Drawable top, Drawable right, Drawable bottom)
Since: API Level 1

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.

文字描述上有差别 但是领悟不了 呵呵
我做了一个测试,大概推出这样的结论:
setCompoundDrawables 画的drawable的宽高是按drawable.setBound()设置的宽高,所以才有The Drawables must already have had setBounds(Rect) called.这句话之说。
而setCompoundDrawablesWithIntrinsicBounds是画的drawable的宽高是按drawable固定的宽高,即通过getIntrinsicWidth()与getIntrinsicHeight()获得,所以才有The Drawables' bounds will be set to their intrinsic bounds.这句话之说!
setCompoundDrawablesWithIntrinsicBounds..
还是看看源码清楚些 
public void setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top,
            Drawable right, Drawable bottom) {

        if (left != null) {
            left.setBounds(0, 0, left.getIntrinsicWidth(), left.getIntrinsicHeight());
        }
        if (right != null) {
            right.setBounds(0, 0, right.getIntrinsicWidth(), right.getIntrinsicHeight());
        }
        if (top != null) {
            top.setBounds(0, 0, top.getIntrinsicWidth(), top.getIntrinsicHeight());
        }
        if (bottom != null) {
            bottom.setBounds(0, 0, bottom.getIntrinsicWidth(), bottom.getIntrinsicHeight());
        }
        setCompoundDrawables(left, top, right, bottom);
    }
分享到:
评论

相关推荐

    android button

    本文将详细讲解如何在Android中更改Button控件中间显示的图标,以实现更美观、更具交互性的界面设计。 首先,我们需要准备一个图标资源。在Android项目中,通常将图标放在res/drawable目录下。可以创建一个新的XML...

    【Android】自定义Button效果

    在代码中,可以通过`setCompoundDrawablesWithIntrinsicBounds()`方法添加图标,`setTextColor()`改变文字颜色,`setBackgroundResource()`设置背景等。 10. **Material Design Button** 如果你使用的是Android的...

    Android代码-带图片的按钮源码.zip

    - 在Java或Kotlin代码中,可以通过`Button`对象的`setCompoundDrawablesWithIntrinsicBounds()`方法来设置按钮的图像。例如: ```java Button button = findViewById(R.id.button); button....

    调整drawabletop大小

    `DrawableTop` 是 Android 中一种布局属性,通常用于在TextView、Button或其他View的顶部添加一个图形元素。例如,你可以将一个图标置于文本的上方,增强视觉效果或指示状态。默认情况下,`DrawableTop` 的大小是与...

    drawableTop设定大小RadioButton和Button类库和示例

    radioButton.setCompoundDrawablesWithIntrinsicBounds(null, scaledDrawable, null, null); ``` 在提供的`ViewTestDemo`项目中,你可以找到这些自定义操作的实例代码,而`ButtonLibrary`可能包含了各种按钮样式...

    Node.js-Android-Iconics开源库简介

    5. **与现有组件兼容**:Android-Iconics可无缝集成到各种Android UI组件中,如TextView、Button、ImageView等,无需替换原有的组件体系。 6. **扩展性**:由于Android-Iconics的设计模式,开发者可以轻松添加新的...

    Android中常见控件的介绍和使用

    - `setCompoundDrawablesWithIntrinsicBounds()`:设置图标的位置,但保持图标原有的尺寸比例。 - `setPadding()`:设置四周的填充间距。 - `getAutoLinkMask()`:获取自动链接的掩码。 - `setTextColor()`:设置...

    android常用控件

    - **setCompoundDrawablesWithIntrinsicBounds()**:设置图标的位置,但保持图标原始大小不变。 - **setPadding()**:设置四周的内边距。 - **getAutoLinkMask()**:获取自动连接掩码。 - **setTextColor()**:设置...

    android自定义控件技巧(ImageButton,TextButton)

    `ImageButton`通常用于显示带有图标的按钮,而`TextButton`则主要用来展示文字信息的按钮。在某些情况下,我们可能需要对它们进行定制,以满足特定的设计需求或功能扩展。下面我们将详细介绍如何实现这一目标。 ...

    CompoundDrawableFixer:简单的Android Utils类可修复具有复合drawable时TextViews和Button中文本的非居中问题

    在Android开发中,有时我们会在`TextView`或`Button`中使用复合可绘制对象(Compound Drawables),这些可绘制对象可以是图标或者其他图形元素,它们与文本一起显示。然而,当我们将这些复合可绘制对象与文本结合...

    Android中设置RadioButton在文字右边的方法实例

    在这里,`setCompoundDrawablesWithIntrinsicBounds()`方法用于设置RadioButton的四个边缘(左、上、右、下)的图标配饰。第一个参数是左侧,第二个是顶部,第三个是右侧,第四个是底部。传入`null`表示不设置该位置...

    View的drawable的使用

    在Android开发中,View组件的装饰和美化是常见的需求之一,尤其是TextView、EditText和Button等用于显示文本的控件。这些控件不仅可以显示纯文本,还能通过设置`drawable`属性来在文本周围添加图像,从而增强视觉...

    3-基础控件1

    自定义图标可以通过button属性或drawableLeft属性实现。 4. **Switch控件**:Switch控件类似ToggleButtom,但提供了更直观的开/关切换效果,可以设置文字和颜色等属性。 5. **Button的点击事件**:Button的点击...

    动态添加实现的简易手机拨号界面

    这些属性可以通过`setCompoundDrawablesWithIntrinsicBounds()`设置图标,通过`setText()`设置文字。 - 接下来,使用`addView()`方法将按钮添加到主布局中。`LayoutParams`可以用来调整按钮在屏幕上的位置。 3. **...

    自定义edittextview(删除输入框)

    本文将详细讲解如何自定义一个带有删除输入框功能的EditTextView,以及如何结合Intent进行隐式调用。 首先,我们来创建自定义的EditTextView。这个控件会在输入文字时显示一个可点击的删除图标,用户可以轻松清除...

    DrawableDemo.zip

    此外,还可以结合`android:drawableStart`、`android:drawableEnd`等属性在TextView中插入Drawable,或者使用`setCompoundDrawablesWithIntrinsicBounds()`方法在Button或其他View上添加图标。在布局XML文件中,可以...

Global site tag (gtag.js) - Google Analytics