android 拍照 分辨率设置,Android,_SurfaceView 拍照,怎么设置分辨率,Android - phpStudy...

本文探讨了在华为荣耀4A手机上使用SurfaceView进行拍照时,如何解决分辨率固定为160*120的问题。提供了详细的代码示例,包括SurfaceView初始化、相机参数设置和拍照回调处理,旨在帮助开发者解决实际开发中遇到的技术难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SurfaceView 拍照,怎么设置分辨率

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() {

//双缓冲view

SurfaceView 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 {

@Override

public 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();

}

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

}

}

public void take(View v){

//创建图片

cam.takePicture(null,null,new B());

}

private class B implements Camera.PictureCallback {

@Override

public 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();

}

}

}

}

相关阅读:

antd的Table组件 设置key 按照api上的设置了 还是报react 需要设置 unique “key” 的错 ?

这一段代码是什么意思

IOS的POST必须使用字典吗

AntD InputNumber组件 输入0为什么取不到值?

mysql内容很多,如何python输出?

下载的别人的项目npm启动node server的时候报错?错误提示如下

Mac下 运行Win7虚拟机内SQL Server 2008 Management Studio 如何访问外接移动硬盘

PHP基础(小白提问)

Mac上开发的 ios react-native json 报错 !急急急!!

uploadify组件,调用其他click事件,触发上传

C#如何更改request header的date?

css小三角定位

已导入vue-resourse,前端依旧报错!

thinkphp5怎么连接SQL server2012?

data return route return 区别

apache配置了https,过一段时间后无法访问了,重启后又正常了

typedef (MGraph_Printf) (MVertex)

webpack+vue.js 开发单页面,IE9下报错。

为什么我在火狐浏览器加上-moz-不起作用呢

zabbix 过滤问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值