/**显示图片,使用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图片缩放成指定的尺寸.