我正在尝试将ImageView子类化以创建自定义视图。
public class MyImageView extends ImageView
现在我通过setImageResource(int resId)
现在,我需要获得传递图像的原始尺寸,
我需要在MyImageView
内执行此操作,以便我可以使用该维度来实现onDraw()
。
我该怎么做?
答案 0 :(得分:1)
Android的Drawable
提供getIntrinsicHeight
和getIntrinsicWidth
方法,如果它支持大小属性,则应该返回基础可绘制对象的首选(在某种意义上为“真实”)大小所有。我假设它们应该在您的情况下工作,只要您阅读真实图像,但如果由于某种原因,他们没有(即返回-1),可能的解决方法可能是解析图像标题(例如,位图标题或SVG文档,手动或使用现有的图像库),或存储具有图形资源维度的地图以及资源本身。
答案 1 :(得分:0)
Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.yourBitmap);
然后尝试image.getWidth
和image.getHeight()
更新
你可以设置decodebounds
为true并传递该边界以获取dimensions
而不解码整个位图
答案 2 :(得分:0)
Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
int height = bitmap.getHeight();
int width = bitmap.getWidth();