问题如下:
我根据图片生成一个Bitmap对象,其density是240,长度和宽度都是固定的,
但当把这个对象传参到BitmapDrawable构造函数中,发现density变成160,同时长宽 都缩小 1.5倍,如下代码 BitmapDrawable drawable = new BitmapDrawable(bitmapObject);
经过这一句之后,drawable中的图片长宽都变小,density变成160,这样就会导致我的画的图片尺寸有问题。我想问问这是什么原因,如何解决。因为我是使用的1.5的库,所以没法设置density。
所以暂时没什么办法。

解决方案 »

  1.   

            Bitmap b = Bitmap.createBitmap(300, 300, Config.ARGB_8888);
            BitmapDrawable d = new BitmapDrawable(b);
            Log.i("test", " " + d.getBitmap().getHeight());我通过这段代码测试了下,BitmapDrawable最后还原回来的图片大小是正确的。我想即使和density有关,在应用中系统也会根据density,对BitmapDrawable还原的图片做出相应的大小上修改。
      

  2.   

    你用的creatBitmap创建出来的 b的density是 160,你可以创建一个新的模拟器,是854的屏幕,他的默认density是240,你看你的这段代码在这个模拟器上运行,高度变化是否正常,
      

  3.   

    明了了,2.1之前,WVGA的屏幕所获得的大小都是错误的。
      

  4.   

    能否详细说一下,
    msn:[email protected]
      

  5.   

    我的确创建的WVGA854屏幕,如果都是错的话,那这个有什么解决办法吗,
      

  6.   

    我刚才做了个实验,的确像你说的那样,1.6 读WVGA的density是错误的,240density的图片,经过BitmapDrawable之后targetdensity成了160了,那这个问题如何解决呢,我们的真机的sdk是1.6的,这个很难要求别人刷到2.1以上,在1.6这种情况下,我怎么解决这个问题呢,