android Bitmap 和 BitmapDrawable 的相关问题

奔跑哥 2010-08-21 11:36:12
问题如下:
我根据图片生成一个Bitmap对象,其density是240,长度和宽度都是固定的,
但当把这个对象传参到BitmapDrawable构造函数中,发现density变成160,同时长宽 都缩小 1.5倍,

如下代码 BitmapDrawable drawable = new BitmapDrawable(bitmapObject);
经过这一句之后,drawable中的图片长宽都变小,density变成160,

这样就会导致我的画的图片尺寸有问题。

我想问问这是什么原因,如何解决。因为我是使用的1.5的库,所以没法设置density。
所以暂时没什么办法。

...全文
1132 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zeus_9i 2011-12-27
  • 打赏
  • 举报
回复
我在2.2 上面也是这个问题,有谁解决了吗
逍遥_WX 2011-02-05
  • 打赏
  • 举报
回复
关注这个问题,我也碰到了
奔跑哥 2010-08-22
  • 打赏
  • 举报
回复
我刚才做了个实验,的确像你说的那样,1.6 读WVGA的density是错误的,240density的图片,经过BitmapDrawable之后targetdensity成了160了,

那这个问题如何解决呢,我们的真机的sdk是1.6的,这个很难要求别人刷到2.1以上,

在1.6这种情况下,我怎么解决这个问题呢,
奔跑哥 2010-08-22
  • 打赏
  • 举报
回复
我的确创建的WVGA854屏幕,如果都是错的话,那这个有什么解决办法吗,
奔跑哥 2010-08-22
  • 打赏
  • 举报
回复
能否详细说一下,
msn:zhtsuc@hotmail.com
yyy025025025 2010-08-22
  • 打赏
  • 举报
回复
明了了,2.1之前,WVGA的屏幕所获得的大小都是错误的。
奔跑哥 2010-08-22
  • 打赏
  • 举报
回复
你用的creatBitmap创建出来的 b的density是 160,你可以创建一个新的模拟器,是854的屏幕,他的默认density是240,你看你的这段代码在这个模拟器上运行,高度变化是否正常,
yyy025025025 2010-08-22
  • 打赏
  • 举报
回复
        Bitmap b = Bitmap.createBitmap(300, 300, Config.ARGB_8888);
BitmapDrawable d = new BitmapDrawable(b);
Log.i("test", " " + d.getBitmap().getHeight());


我通过这段代码测试了下,BitmapDrawable最后还原回来的图片大小是正确的。

我想即使和density有关,在应用中系统也会根据density,对BitmapDrawable还原的图片做出相应的大小上修改。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧