问题描述
1.华为荣耀4a测试,分辨率一直是160*120?2.求助代码如下:
SurfaceHolder holder; Camera cam; Camera.Parameters myParameters; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_photo);initView(); } private void initView() {//双缓冲viewSurfaceView sfv= (SurfaceView) findViewById(R.id.surfaceView);ViewGroup.LayoutParams lp = sfv.getLayoutParams();lp.width = 750;lp.height =1200;sfv.setLayoutParams(lp);//帮助类对象holder = sfv.getHolder();//指定类型holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);//指定回调接口holder.addCallback(new A()); } private class A implements SurfaceHolder.Callback {@Overridepublic void surfaceCreated(SurfaceHolder holder) { cam = Camera.open(0); try {myParameters = cam.getParameters();myParameters.setPreviewFpsRange(20, 40);myParameters.setPictureFormat(ImageFormat.JPEG);myParameters.set('jpeg-quality', 85); // myParameters.setPictureSize(750, 1280);cam.setPreviewDisplay(holder);cam.setDisplayOrientation(90); // cam.setParameters(myParameters);cam.startPreview(); } catch (Exception e) {e.printStackTrace(); }}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {} } public void take(View v){//创建图片cam.takePicture(null,null,new B()); } private class B implements Camera.PictureCallback {@Overridepublic void onPictureTaken(byte[] data, Camera camera) { try {Bitmap a= BitmapFactory.decodeByteArray(data,0,data.length);//当前时间的毫秒数long time = System.currentTimeMillis();String path='/sdcard/'+time+'.jpg';FileOutputStream out=new FileOutputStream(new File(path));//压缩a.compress(Bitmap.CompressFormat.JPEG,100,out); } catch (Exception e) {e.printStackTrace(); }} }}
问题解答
回答1:Parameters params = mCamera.getParameters();if (!Config.FOR_MTK) { params.setFocusMode(Parameters.FOCUS_MODE_AUTO);} params.setPictureSize(1920, 1080);mCamera.setParameters(params);mCamera.takePicture(mShutterCallback, mRawPictureCallback,mPostViewPictureCallback, mJpegPictureCallback);
我是这样写的,不过照片的最大分辨率是在Android底层编写的,所以这里写的分辨率都是在最大分辨率范围内修改的。

