顾名思义他们是用来取得Drawable的固有的宽度和高度。那么问题就来了:我们有时候通过这两个方法取到的宽和高和实际的并不一样,这是怎么回事呢?
Drawable这个类是对所有可以画的东西的抽象,他可以是一张图片,也可以是实体的颜色,线等等,我们不能简单的认为它是一张图片。笔者经过实验发现,我的测试设备dpi是320,而android为了让同一个view在不同dpi的设备上大小尽量保持一致,所以其图片在mdpi、hdpi、xhdpi里展示的图片大小在不同的手机手机屏幕里面不太一样。
其单位还是px。
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } ``` 这里的关键在于创建一个新的`Bitmap`实例,并使用`Canvas`将`...
在Android开发中,图片资源的处理是常见的需求之一,尤其涉及到不同格式间的转换,如Drawable、Bitmap、byte数组以及灰度图像的转换。这些转换在实际应用中具有重要意义,不仅能够优化内存使用,还能实现图像的高效...
在Android开发中,图片资源的处理是常见的需求之一,涉及到多种数据类型之间的转换,包括`Drawable`、`Bitmap`、`byte[]`等。本文将详细介绍这些类型之间的转换方法,以及如何实现灰度图像的转换。 ### 1. `...
Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas....
int height = drawable.getIntrinsicHeight(); Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas....
2. 尺寸计算:在`getIntrinsicWidth()`和`getIntrinsicHeight()`中提供合适的尺寸,确保自定义Drawable在不同大小的容器中能正确显示。 3. 可触摸性:如果需要监听用户的触摸事件,可以实现`TouchListener`接口并...
4. 为了保持圆形头像的尺寸正确,我们需要重写getIntrinsicWidth和getIntrinsicHeight方法,返回相同的宽度值(因为头像是圆形,所以宽高相等)。 5. 提供setAlpha和setColorFilter方法,以便可以调整透明度和颜色...
2. `getIntrinsicWidth() / getIntrinsicHeight()`: 这两个方法用于获取Drawable的固有宽度和高度。当Drawable需要自动调整大小时,这些信息会非常有用。 3. `setBounds(int left, int top, int right, int bottom)...
为了实现圆角效果,我们需要自定义一个 Drawable,重写其五个必须的方法,即 draw()、setAlpha()、setColorFilter()、getOpacity() 和 getIntrinsicWidth()、getIntrinsicHeight()。在本文中,我们使用 Java 语言来...
其他Drawable方法,如getIntrinsicWidth(), getIntrinsicHeight()等 } ``` 对于圆角图片,我们可以稍微修改这个`CircleDrawable`,将`drawCircle()`改为`drawRoundRect()`。`drawRoundRect()`接受一个矩形和两个...
获取Drawable的内部宽度和高度可以使用`getIntrinsicWidth`和`getIntrinsicHeight`方法。对于BitmapDrawable,这两个方法会返回图片的实际尺寸;而对于ColorDrawable,由于无固定尺寸,它们会返回-1。 在实际应用中...
touchDelegateView.layout(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); TouchDelegate touchDelegate = new TouchDelegate(touchDelegateView, editText.getRight() - drawable....
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } ``` 这个方法首先检查Drawable是否已经是BitmapDrawable,如果是,则直接...
Drawable天天用,可你是否对Drawable家族有一个完整的认知?今天我们就来系统的学习一下...一般来说,Drawable并没大小的概念(虽然可以通过getIntrinsicHeight和getIntrinsicWidth两个方法获取Drawable的宽和高,但是
同时,可能需要覆盖`onBoundsChange()`以适应边界变化,`getIntrinsicWidth()`和`getIntrinsicHeight()`获取固有尺寸,以及`setBounds()`设置绘制范围。 2. **处理状态**:自定义Drawable需要关注`setState()`方法...
这段代码首先获取`Drawable`的宽度和高度,然后创建一个与之匹配的`Bitmap`,接着在`Canvas`上绘制`Drawable`,将其转换为`Bitmap`。 3. **缩放Bitmap**: 为了改变图片的大小,我们可以使用`Bitmap....
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } ``` 2. **从资源中获取Bitmap**: 从应用资源中加载Bitmap,如图片文件...
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } ``` 这段代码展示了如何从一个Drawable对象转换成Bitmap对象。主要步骤...
bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); } Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas.getWidth()...
一、[Android实例]实现... drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable .getIntrinsicHeight()); return drawable; } }; 至于TagHandler,我们这里不需要使用,可以直接传null。 参考文档: ...