2013-02-09 52 views
-1

所以现在我玩一个游戏(机器人)和我有几个问题。好的,只要我在屏幕上绘制任何不是320x480的图像,它将只填充屏幕的一部分,例如,如果绘制500x500的图像,它将只显示图像的左上部分,如果我绘制一个32x32它将只填充屏幕的一部分。这是一个问题,因为为了获得清晰的图像,我需要图像在像素方面更大,否则图像会出现像素化。基本上有一种方法可以将大图像压缩到一个设定的区域,在不切割图像的情况下将500x500图像放入320x480区域。如何把大PNG在屏幕上

回答

0

放入文件夹以下的尺寸的图像:

Hdpi: 480*800 
Ldpi: 320*460 
mdpi: 720*960 
xdpi: 800*1280 
1

一般加载的位图文件缩小版是优选的,如图here in Android documentation,使用比例的选择。

但是从你的问题,我想你只想读取图像文件的矩形部分。幸运的是,有一个类BitmapRegionDecoder 它只是这样做:

BitmapRegionDecoder brd = BitmapRegionDecoder.newInstance(<file_name>,true); 

Bitmap b = brd.decodeRegion(new Rect(0,0,32,32), BitmapFactory.Options()); 
//-- In the Options object above, you can set scale, 
//-- which will read scaled down region and do it so faster-- 

//-- after you no longer need above resources anywhere, remember to free them -- 
brd.recycle(); 
相关问题