bitmap缩放到指定大小-android中怎么是bitmap缩小

如题所述

如何对图片进行缩放到适应屏幕大小呀

/**显示图片,使用BitmapFactory()*path

*图片SD卡路径****/

privatevoidshow_Image(Stringpath){

//TODOAuto-generatedmethodstub

opts=new();

=2;//宽高设置成原来的1/2

Bitmapbit=newBitmapFactory().decodeFile(path,opts);

show_(bit);

还有很多属性,你去查查吧,另外如果非要适应屏幕大小的话,你还需要获取屏幕的大小,然后图片大小跟屏幕大小比较,没弄过一定要图片跟屏幕大小填充满的,就算填充满,一定也会失真

android中怎么是bitmap缩小

/**Bitmap放大的方法*/

privatestaticBitmapbig(Bitmapbitmap){

Matrixmatrix=newMatrix();

(1.5f,1.5f);//长和宽放大缩小的比例

BitmapresizeBmp=(bitmap,0,0,(),(),matrix,true);

returnresizeBmp;

}

这里放大缩小的方法都有:

android缩放和压缩的区别

android缩放和压缩图片可以如下解释:

压缩图片

这里简单的将一个图片文件转换为Bitmap,并且在转换的过程中对图片质量进行简单压缩:

(,intquality,FileOutputStreamfos);

注意这里的quality的范围为0~100,经过测试如果这个值设置比较低的话图片会非常不清晰,基本不可用,0~100的值可以参考类似Photoshop之类输出图片时选择的图片质量.

此方法只是单纯对图片质量进行处理,并不会改变其大小,如果需要改变图片文件的大小,最好是使用缩放,这个可以在保证一定的图片清晰度的情况下减少了图片大小,毕竟手机屏幕就那么点,你把2000px*1000px的图片改为500px*250px在手机用户看来也不会有太严重的不适感,而如果你只设置图片的quality想来改变文件大小,你最后会发现得到的是一个2000px*1000px的几个色块.

缩放图片

先提代码看看:

[java]viewplaincopy

/**

*保持长宽比缩小Bitmap

*

*@parambitmap

*@parammaxWidth

*@parammaxHeight

*@return

*/

publicBitmapresizeBitmap(Bitmapbitmap,intmaxWidth,intmaxHeight){

intoriginWidth=();

intoriginHeight=();

//noneedtoresize

if(originWidth<maxWidth&&originHeight<maxHeight){

returnbitmap;

}

intwidth=originWidth;

intheight=originHeight;

//若图片过宽,则保持长宽比缩放图片

if(originWidth>maxWidth){

width=maxWidth;

doublei=originWidth*1.0/maxWidth;

height=(int)(originHeight/i);

bitmap=(bitmap,width,height,false);

}

//若图片过长,则从上端截取

if(height>maxHeight){

height=maxHeight;

bitmap=(bitmap,0,0,width,height);

}

//Log.i(TAG,width+"width");

//Log.i(TAG,height+"height");

returnbitmap;

}

这里演示是将图片缩小到一个max范围内,而不是直接将变成硬性的变成某个尺寸的图片,因为一般来说这种设置max的方式符合大部分需要,如果必须将图片变成某个指定尺寸可以直接使用方法,也是下面要介绍的.

此函数主要就是使用了Bitmap的两个静态方法,一个是:

publicstaticBitmapcreateScaledBitmap(Bitmapsrc,intdstWidth,intdstHeight,booleanfilter)

此方法就会把一个Bitmap图片缩放成指定的尺寸.

温馨提示:答案为网友推荐,仅供参考