iv.setMaxHeight(dm.heightPixels/2);
iv.setMaxWidth(dm.widthPixels/2);
我用上面的代码把imageview的大小都限制到了屏幕的一半,大部分图片都能自动缩放。
但是只要是长图,如果运行的模拟设备屏幕太小都会强退,如果设备屏幕够大的就会自动缩小。
比如,一张长图,在平板电脑的设备里可以显示,但是放到手机屏幕上就会强退,为什么会这样啊?该怎么解决呢?
------解决方案--------------------
BitmapFactory.Options bitOptions=new Options();
//设置读进来的比例,以原来的1/10来读取
bitOptions.inSampleSize=10;
Bitmap bitmap= BitmapFactory.decodeFile("/sdcard/a.jpg",bitOptions);
iView.setImageBitmap(bitmap)
能够实现大小变为原来的十分之一
------解决方案--------------------
Bitmap bt;
int intnt = 2;
while ( true ) {
Options op = new Options();
op.inJustDecodeBounds = true;
bt = BitmapFactory.decodeFile(mImagePath, op);
op.inSampleSize = intnt;
op.inJustDecodeBounds = false;
bt = BitmapFactory.decodeFile(mImagePath, op);
if ( bt != null ){
intnt = intnt+1;
if ( bt.getWidth() < 240
------解决方案--------------------
bt.getHeight() < 240 ) {
break;
}
}
}
bt就是等比缩放后的bitmap