android程序按着自己定义的宽高对照片进行压缩然后保存在sdcrad上然后显示在imageview

上发现保存在sdcard上,图片失真,模糊不清晰怎么解决失真的问题呢?... 上发现保存在sdcard上 ,图片失真,模糊不清晰 怎么解决失真的问题呢? 展开
 我来答
QQMSD8
2015-09-16 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部
ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。
设置的方式包括:
1. 在layout xml中定义android:scaleType="CENTER"
2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);

ScaleType的值和对应的显示效果进行说明:
1. SetScaleType(ImageView.ScaleType.CENTER);
按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示

2. SetScaleType(ImageView.ScaleType.CENTER_CROP);
按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)

3. setScaleType(ImageView.ScaleType.CENTER_INSIDE);
将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽

4. setScaleType(ImageView.ScaleType.FIT_CENTER);

把图片按比例扩大/缩小到View的宽度,居中显示

5. FIT_START, FIT_END在图片缩放效果上与FIT_CENTER一样,只是显示的位置不同,FIT_START是置于顶部,FIT_CENTER居中,FIT_END置于底部。

6. FIT_XY
不按比例缩放图片,目标是把图片塞满整个View。
wicked_Harmous
2012-09-05 · TA获得超过690个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:220万
展开全部
public Bitmap photo = null;

// 设置文件保存路径这里放在跟目录下
File picture = new File(Environment.getExternalStorageDirectory()
+ "/XXX.jpg");
uri = Uri.fromFile(picture);
startPhotoZoom(uri);

/**
* 调用系统自带截图界面
* @param 图片路径
*/
public void startPhotoZoom(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, IMAGEUNSPECIFIED);
intent.putExtra("crop", "false");
// aspectX aspectY 是宽高的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
//outputX outputY 是裁剪图片宽高
intent.putExtra("outputX", 120);
intent.putExtra("outputY", 120);
intent.putExtra("return-data", true);
startActivityForResult(intent, 3);
}
/**
* Activity回调
*/
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == NONE) {
return;
}

// 读取相册缩放图片
if (requestCode == 2) {
uri = data.getData();
startPhotoZoom(uri);

}

// 处理结果
if (requestCode == 3) {
Bundle extras = data.getExtras();
if (extras != null) {
photo = extras.getParcelable("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.JPEG, 50, stream); // (0 -
// 100)压缩文件
}
}
super.onActivityResult(requestCode, resultCode, data);
}

这是我自己项目中用的一个取本地图片,截图片,压缩的方法,希望对你有用吧。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ltc1996
2012-08-30 · TA获得超过196个赞
知道答主
回答量:143
采纳率:0%
帮助的人:71.3万
展开全部
用截屏工具,定好长和宽的像素数,然后把图像缩小到一定比例,移动截屏框进行截屏。有点麻烦,但是高质量
追问
代码可以实现吗?
追答
没试过,但刚才那个是我知道的最佳方法。最具清晰度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是某人猪
2012-09-04 · TA获得超过171个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:82.1万
展开全部
自己定义的没有错,但是你的手机的分辨率要和图片的额分辨率对应
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式