getDrawable().getIntrinsicWidth()
时间: 2023-06-25 09:01:08 浏览: 95
这个方法是用来获取Drawable对象的固有宽度,即它在没有进行缩放时的宽度。具体来说,getDrawable()方法返回的是一个Drawable对象,然后调用它的getIntrinsicWidth()方法就可以获取它的固有宽度了。如果Drawable对象没有指定固有宽度,那么getIntrinsicWidth()方法会返回-1。需要注意的是,这个方法只有在Drawable对象被设置为固定宽度时才有意义,否则它返回的值可能会是错误的。
相关问题
layout能使用getDrawable().getIntrinsicWidth()
在layout中,getDrawable().getIntrinsicWidth()并不能直接使用。因为这个方法是定义在Drawable类中的,而在layout中,我们通常使用的是View类及其子类,它们并没有直接提供这个方法。如果你想要获取一个View中的Drawable对象的固有宽度,你可以通过以下方式之一实现:
1. 通过findViewById()方法获取到View对象,然后通过View对象的getBackground()、getCompoundDrawables()等方法获取到对应的Drawable对象,最后使用getDrawable().getIntrinsicWidth()方法获取其固有宽度。
2. 直接在Java代码中创建一个Drawable对象,然后使用getDrawable().getIntrinsicWidth()方法获取其固有宽度,例如:
```
Drawable drawable = getResources().getDrawable(R.drawable.my_drawable);
int intrinsicWidth = drawable.getIntrinsicWidth();
```
这里的R.drawable.my_drawable是一个Drawable类型的资源,你可以替换成你自己的资源。
html单击数字显示图片,记SpannableString金融数字显示与Html.from显示图片
您好!针对您的问题,我可以提供一些思路和代码示例。
首先,您可以使用 `Html.fromHtml()` 方法来解析包含图片和数字的 HTML 字符串,如下所示:
```java
String htmlString = "您的数字是:<img src='number.png'/>123456";
CharSequence text = Html.fromHtml(htmlString, getImageGetter(), null);
```
其中,`getImageGetter()` 是一个实现了 `Html.ImageGetter` 接口的对象,用于获取并显示图片。示例代码如下:
```java
private Html.ImageGetter getImageGetter() {
return new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
// 根据图片资源名获取图片 Drawable 对象
Drawable drawable = getResources().getDrawable(getResourceId(source));
// 设置图片大小和对齐方式
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
// 返回图片 Drawable 对象
return drawable;
}
private int getResourceId(String source) {
// 根据图片资源名获取图片资源 id
return getResources().getIdentifier(source, "drawable", getPackageName());
}
};
}
```
接着,您可以使用 `SpannableString` 类来对金融数字进行格式化显示,例如:
```java
String numberString = "123456";
SpannableString spannableString = new SpannableString(numberString);
spannableString.setSpan(new ForegroundColorSpan(Color.RED), 0, numberString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
```
以上代码使用红色文字颜色对数字进行了标记。您可以根据需求使用不同的 Span 对象来实现不同的格式化效果。
最后,您可以将包含图片和金融数字的 `SpannableString` 和 `CharSequence` 对象合并,以实现完整的显示效果。示例代码如下:
```java
SpannableStringBuilder builder = new SpannableStringBuilder();
builder.append(text);
builder.append(spannableString);
TextView textView = findViewById(R.id.text_view);
textView.setText(builder);
```
以上代码将图片和数字合并到了一个 `SpannableStringBuilder` 对象中,并设置为 `TextView` 的文本内容。
希望以上内容能够对您有所帮助!
阅读全文