慕虎3326924
方法1:拍照页面跳转 预览界面时不finsh掉当前页面 然后点击某个按钮 finsh掉拍照预览页面 这样就回到拍照页面了
方法2: 直接
intent ---> CustomcameraActivity
慕粉1509133595
宝慕林342885
因为预览图片的分辨率宽高比和真实图片分辨率的宽高比不相同
慕沐4243371
告诉你。还是那个权限的问题,你没授权camera和读写外置内存卡的权限
皮夹克666
我聚焦了 但是还是很模糊
芹叶铁线
http://www.imooc.com/search/course?words=android%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86
大白小白
private class PhotoTask extends Thread
{
private String file;
private boolean isFinished;
public PhotoTask(String file)
{
this.file = file;
}
@Override
public void run()
{
BufferedOutputStream bos = null;
Bitmap icon = null;
try
{
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(file, options); //此时返回bm为空
float percent =
options.outHeight > options.outWidth ? options.outHeight / 960f : options.outWidth / 960f;
if (percent < 1)
{
percent = 1;
}
int width = (int)(options.outWidth / percent);
int height = (int)(options.outHeight / percent);
icon = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
//初始化画布 绘制的图像到icon上
Canvas canvas = new Canvas(icon);
//建立画笔
Paint photoPaint = new Paint();
//获取跟清晰的图像采样
photoPaint.setDither(true);
//过滤一些
// photoPaint.setFilterBitmap(true);
options.inJustDecodeBounds = false;
Bitmap prePhoto = BitmapFactory.decodeFile(file);
if (percent > 1)
{
prePhoto = Bitmap.createScaledBitmap(prePhoto, width, height, true);
}
canvas.drawBitmap(prePhoto, 0, 0, photoPaint);
if (prePhoto != null && !prePhoto.isRecycled())
{
prePhoto.recycle();
prePhoto = null;
System.gc();
}
//设置画笔
Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);
//字体大小
textPaint.setTextSize(20.0f);
//采用默认的宽度
textPaint.setTypeface(Typeface.DEFAULT);
//采用的颜色
textPaint.setColor(Color.YELLOW);
//阴影设置
// textPaint.setShadowLayer(3f, 1, 1, Color.DKGRAY);
// 时间水印
String mark = getCurrTime("yyyy-MM-dd HH:mm:ss");
float textWidth = textPaint.measureText(mark);
canvas.drawText(mark, width - textWidth - 10, height - 26, textPaint);
bos = new BufferedOutputStream(new FileOutputStream(file));
int quaility = (int)(100 / percent > 80 ? 80 : 100 / percent);
icon.compress(CompressFormat.JPEG, quaility, bos);
bos.flush();
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
isFinished = true;
if (bos != null)
{
try
{
bos.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
if (icon != null && !icon.isRecycled())
{
icon.recycle();
icon = null;
System.gc();
}
}
}
}