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项目中,通常将图标放在res/drawable目录下。可以创建一个新的XML...
在代码中,可以通过`setCompoundDrawablesWithIntrinsicBounds()`方法添加图标,`setTextColor()`改变文字颜色,`setBackgroundResource()`设置背景等。 10. **Material Design Button** 如果你使用的是Android的...
- 在Java或Kotlin代码中,可以通过`Button`对象的`setCompoundDrawablesWithIntrinsicBounds()`方法来设置按钮的图像。例如: ```java Button button = findViewById(R.id.button); button....
`DrawableTop` 是 Android 中一种布局属性,通常用于在TextView、Button或其他View的顶部添加一个图形元素。例如,你可以将一个图标置于文本的上方,增强视觉效果或指示状态。默认情况下,`DrawableTop` 的大小是与...
radioButton.setCompoundDrawablesWithIntrinsicBounds(null, scaledDrawable, null, null); ``` 在提供的`ViewTestDemo`项目中,你可以找到这些自定义操作的实例代码,而`ButtonLibrary`可能包含了各种按钮样式...
5. **与现有组件兼容**:Android-Iconics可无缝集成到各种Android UI组件中,如TextView、Button、ImageView等,无需替换原有的组件体系。 6. **扩展性**:由于Android-Iconics的设计模式,开发者可以轻松添加新的...
- `setCompoundDrawablesWithIntrinsicBounds()`:设置图标的位置,但保持图标原有的尺寸比例。 - `setPadding()`:设置四周的填充间距。 - `getAutoLinkMask()`:获取自动链接的掩码。 - `setTextColor()`:设置...
- **setCompoundDrawablesWithIntrinsicBounds()**:设置图标的位置,但保持图标原始大小不变。 - **setPadding()**:设置四周的内边距。 - **getAutoLinkMask()**:获取自动连接掩码。 - **setTextColor()**:设置...
`ImageButton`通常用于显示带有图标的按钮,而`TextButton`则主要用来展示文字信息的按钮。在某些情况下,我们可能需要对它们进行定制,以满足特定的设计需求或功能扩展。下面我们将详细介绍如何实现这一目标。 ...
在Android开发中,有时我们会在`TextView`或`Button`中使用复合可绘制对象(Compound Drawables),这些可绘制对象可以是图标或者其他图形元素,它们与文本一起显示。然而,当我们将这些复合可绘制对象与文本结合...
在这里,`setCompoundDrawablesWithIntrinsicBounds()`方法用于设置RadioButton的四个边缘(左、上、右、下)的图标配饰。第一个参数是左侧,第二个是顶部,第三个是右侧,第四个是底部。传入`null`表示不设置该位置...
在Android开发中,View组件的装饰和美化是常见的需求之一,尤其是TextView、EditText和Button等用于显示文本的控件。这些控件不仅可以显示纯文本,还能通过设置`drawable`属性来在文本周围添加图像,从而增强视觉...
自定义图标可以通过button属性或drawableLeft属性实现。 4. **Switch控件**:Switch控件类似ToggleButtom,但提供了更直观的开/关切换效果,可以设置文字和颜色等属性。 5. **Button的点击事件**:Button的点击...
这些属性可以通过`setCompoundDrawablesWithIntrinsicBounds()`设置图标,通过`setText()`设置文字。 - 接下来,使用`addView()`方法将按钮添加到主布局中。`LayoutParams`可以用来调整按钮在屏幕上的位置。 3. **...
本文将详细讲解如何自定义一个带有删除输入框功能的EditTextView,以及如何结合Intent进行隐式调用。 首先,我们来创建自定义的EditTextView。这个控件会在输入文字时显示一个可点击的删除图标,用户可以轻松清除...
此外,还可以结合`android:drawableStart`、`android:drawableEnd`等属性在TextView中插入Drawable,或者使用`setCompoundDrawablesWithIntrinsicBounds()`方法在Button或其他View上添加图标。在布局XML文件中,可以...