`

Drawable之getIntrinsicWidth()和getIntrinsicHeight()?

 
阅读更多

顾名思义他们是用来取得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>
分享到:
评论

相关推荐

    android_Drawable、Bitmap、byte[]之间的转换.doc

    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } ``` 这里的关键在于创建一个新的`Bitmap`实例,并使用`Canvas`将`...

    Android Drawable、Bitmap、byte、灰度 之间的转换

    在Android开发中,图片资源的处理是常见的需求之一,尤其涉及到不同格式间的转换,如Drawable、Bitmap、byte数组以及灰度图像的转换。这些转换在实际应用中具有重要意义,不仅能够优化内存使用,还能实现图像的高效...

    Android Drawable、Bitmap、byte、灰度 转换

    在Android开发中,图片资源的处理是常见的需求之一,涉及到多种数据类型之间的转换,包括`Drawable`、`Bitmap`、`byte[]`等。本文将详细介绍这些类型之间的转换方法,以及如何实现灰度图像的转换。 ### 1. `...

    Android Drawable Bitmap 相互转换

    Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas....

    Drawable Bitmap之间的转化

    int height = drawable.getIntrinsicHeight(); Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas....

    自定义Drawable

    2. 尺寸计算:在`getIntrinsicWidth()`和`getIntrinsicHeight()`中提供合适的尺寸,确保自定义Drawable在不同大小的容器中能正确显示。 3. 可触摸性:如果需要监听用户的触摸事件,可以实现`TouchListener`接口并...

    Android自定义Drawable实现圆形头像.pdf

    4. 为了保持圆形头像的尺寸正确,我们需要重写getIntrinsicWidth和getIntrinsicHeight方法,返回相同的宽度值(因为头像是圆形,所以宽高相等)。 5. 提供setAlpha和setColorFilter方法,以便可以调整透明度和颜色...

    自定义Drawable.zip

    2. `getIntrinsicWidth() / getIntrinsicHeight()`: 这两个方法用于获取Drawable的固有宽度和高度。当Drawable需要自动调整大小时,这些信息会非常有用。 3. `setBounds(int left, int top, int right, int bottom)...

    Android自定义Drawable实现圆角效果

    为了实现圆角效果,我们需要自定义一个 Drawable,重写其五个必须的方法,即 draw()、setAlpha()、setColorFilter()、getOpacity() 和 getIntrinsicWidth()、getIntrinsicHeight()。在本文中,我们使用 Java 语言来...

    自定义Drawable实现圆形图片

    其他Drawable方法,如getIntrinsicWidth(), getIntrinsicHeight()等 } ``` 对于圆角图片,我们可以稍微修改这个`CircleDrawable`,将`drawCircle()`改为`drawRoundRect()`。`drawRoundRect()`接受一个矩形和两个...

    Android Drawable必备知识小结

    获取Drawable的内部宽度和高度可以使用`getIntrinsicWidth`和`getIntrinsicHeight`方法。对于BitmapDrawable,这两个方法会返回图片的实际尺寸;而对于ColorDrawable,由于无固定尺寸,它们会返回-1。 在实际应用中...

    android drawableRight图标点击事件

    touchDelegateView.layout(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); TouchDelegate touchDelegate = new TouchDelegate(touchDelegateView, editText.getRight() - drawable....

    Android App开发中将View或Drawable转为Bitmap的方法

    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } ``` 这个方法首先检查Drawable是否已经是BitmapDrawable,如果是,则直接...

    玩转Android之Drawable的使用

    Drawable天天用,可你是否对Drawable家族有一个完整的认知?今天我们就来系统的学习一下...一般来说,Drawable并没大小的概念(虽然可以通过getIntrinsicHeight和getIntrinsicWidth两个方法获取Drawable的宽和高,但是

    DrawableStatesDemo:一个学习自定义Drawable以及学习DrawableState的demo

    同时,可能需要覆盖`onBoundsChange()`以适应边界变化,`getIntrinsicWidth()`和`getIntrinsicHeight()`获取固有尺寸,以及`setBounds()`设置绘制范围。 2. **处理状态**:自定义Drawable需要关注`setState()`方法...

    Android 将本地资源图片转换成Drawable,进行设置大小操作

    这段代码首先获取`Drawable`的宽度和高度,然后创建一个与之匹配的`Bitmap`,接着在`Canvas`上绘制`Drawable`,将其转换为`Bitmap`。 3. **缩放Bitmap**: 为了改变图片的大小,我们可以使用`Bitmap....

    android Bitmap用法总结

    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } ``` 2. **从资源中获取Bitmap**: 从应用资源中加载Bitmap,如图片文件...

    android bitmap

    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } ``` 这段代码展示了如何从一个Drawable对象转换成Bitmap对象。主要步骤...

    Android-绚丽的自定义圆角图片简单实用

    bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); } Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas.getWidth()...

    Android的TextView使用Html来处理图片显示、字体样式、超链接等

    一、[Android实例]实现... drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable .getIntrinsicHeight()); return drawable; } }; 至于TagHandler,我们这里不需要使用,可以直接传null。 参考文档: ...

Global site tag (gtag.js) - Google Analytics