Android 照片条纹/划痕(缩略图视图完美)
我的应用程序在特定目录中捕获并保存照片。问题是当我去画廊打开截图时。缩略图视图非常完美,但当使用HTC player打开照片时,照片会出现条纹/划痕 我使用一个实现SurfaceHolder.Callback的活动Android 照片条纹/划痕(缩略图视图完美),android,android-camera,Android,Android Camera,我的应用程序在特定目录中捕获并保存照片。问题是当我去画廊打开截图时。缩略图视图非常完美,但当使用HTC player打开照片时,照片会出现条纹/划痕 我使用一个实现SurfaceHolder.Callback的活动 PictureCallback myJpeg = new PictureCallback() { private boolean compress; public void onPictureTaken(byte[] arg0, Camera arg1)
PictureCallback myJpeg = new PictureCallback() {
private boolean compress;
public void onPictureTaken(byte[] arg0, Camera arg1) {
File path = getPath();
File file = getName(path, imageNum);
imageNum ++;
try {
if(!path.exists())
path.mkdirs();
OutputStream imageFileOS = new FileOutputStream(file);
imageFileOS.write(arg0);
imageFileOS.close();
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if(imageNum < numDisp)
myCamera.startPreview();
else{
goToViewCapture(file);
}
}
};
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
try{
if(myPreviewRunning){
myCamera.stopPreview();
myPreviewRunning = false;
}
Camera.Parameters p = myCamera.getParameters();
p.setPreviewSize(width,height);
myCamera.setParameters(p);
myCamera.setPreviewDisplay(holder);
myCamera.startPreview();
myPreviewRunning = true;
}catch(Exception e){e.printStackTrace();}
}
public void surfaceCreated(SurfaceHolder holder) {
myCamera = Camera.open();
try {
Camera.Parameters parameters = myCamera.getParameters();
parameters.set("jpeg-quality", 70);
parameters.setPictureFormat(PixelFormat.JPEG);
myCamera.setParameters(parameters);
myCamera.setPreviewDisplay(holder);
} catch (IOException exception) {
myCamera.release();
}
//myCamera.startPreview();
}
public void surfaceDestroyed(SurfaceHolder holder) {
myCamera.stopPreview();
myPreviewRunning = false;
myCamera.release();
myCamera = null;
}
PictureCallback myJpeg=新建PictureCallback(){
私有布尔压缩;
公共void onPictureTaken(字节[]arg0,摄像头arg1){
文件路径=getPath();
File File=getName(路径,imageNum);
imageNum++;
试一试{
如果(!path.exists())
path.mkdirs();
OutputStream imageFileOS=新文件OutputStream(文件);
imageFileOS.write(arg0);
imageFileOS.close();
MediaScannerConnection.scanFile(getApplicationContext(),
新字符串[]{file.toString()},null,
新的MediaScannerConnection.OnScanCompletedListener(){
已完成的公共void(字符串路径,Uri){
Log.i(“外部存储”,“扫描”+路径+:”);
Log.i(“外部存储”,“->uri=“+uri”);
}
});
}catch(filenotfounde异常){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
if(imageNum
谢谢
解决方案:
注释此行-->//p.setPreviewSize(宽度、高度)