Android学习05Camera图像采集
来源:互联网 发布:python urllib2 编辑:程序博客网 时间:2024/05/26 19:19
用Camera则必须要获得他的权限,新建一个项目打开AndroidManifest.xml文件在</mainfest>前面加上
<uses-permission android:name="android.permission.CAMERA"/>即可
给屏幕添加布局,修改main.xml文件
修改后的结果如下图:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<SurfaceView
android:id = "@+id/surfaceView"
android:layout_width="480px"
android:layout_height="320px"
/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id = "@+id/button1"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "打开"
/>
<Button
android:id = "@+id/button2"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "关闭"
/>
</LinearLayout>
</LinearLayout>
Activity类代码如下:
package karant.zhan;
import android.app.Activity;
import android.hardware.Camera;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;
public class CameraTest extends Activity implements SurfaceHolder.Callback{
Camera myCamera; //Camera对象的引用
SurfaceView mySurfaceView; //SurfaceView对象的引用
SurfaceHolder mySurfaceHolder; //SurfaceHolder对象的引用
Button button1;
Button button2;
boolean isPreview = false; //是否在浏览中
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mySurfaceView =(SurfaceView)findViewById(R.id.surfaceView);//得到SurfaceView的引用
button1 = (Button)findViewById(R.id.button1);
button2 = (Button)findViewById(R.id.button2);
mySurfaceHolder = mySurfaceView.getHolder(); //获得SurfaceHolder
mySurfaceHolder.addCallback(this);
mySurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
button1.setOnClickListener(new Button.OnClickListener() //打开按钮监听
{
public void onClick(View v){ //单击事件
initCamera(); //调用初始化方法
}
}
);
button2.setOnClickListener( new Button.OnClickListener() //关闭按钮监听
{
public void onClick(View v){ //正在显示时
if(myCamera != null&& isPreview){
myCamera.stopPreview();
myCamera.release();
myCamera = null;
isPreview = false; //设成false
}
}
}
);
}
public void initCamera(){
if(!isPreview){ //打开Camera
myCamera = Camera.open();
}
if(myCamera != null && !isPreview){
try {
myCamera.setPreviewDisplay(mySurfaceHolder);
myCamera.startPreview(); //立即运行
} catch (Exception e) {
e.printStackTrace();
}
isPreview = true;
}
}
@Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder arg0) {
// TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
// TODO Auto-generated method stub
}
}
终于把图片擦进来了内牛满面,前面都传了照片但都没擦进来,蛋疼了
- Android学习05Camera图像采集
- Android开发之初识Camera图像采集
- Android开发之初识Camera图像采集
- Android开发之初识Camera图像采集
- 【Android】操作Camera对象采集图像
- Android开发之初识Camera图像采集
- (爱加密系列教程二十一)Android开发之初识Camera图像采集
- android camera 通过onPreviewFrame采集视频
- android camera 通过onPreviewFrame采集视频
- Android Camera 采集之无需界面
- Android Camera采集数据缓存问题
- android camera学习 camera参数设置
- android camera学习 camera参数设置
- Android 实时视频采集—Camera预览采集
- Android 实时视频采集—Camera预览采集
- 【流媒體】Android 实时视频采集—Camera预览采集
- 图像采集系统的Camera Link标准接口设计
- linux下usb camera图像采集(V4l2)
- 用VS编写ActiveX的一点注册问题解决
- Linq To XML:获得自身结点,及相邻的上/下一个结点
- 8086寄存器
- 综合集成学习框架及其他机器学习类型
- 存储过程和函数的区别
- Android学习05Camera图像采集
- CALLBACK函数(转) - C/C++
- 有理想的程序员必须知道的15件事
- 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集
- 状态栏上加时间
- ChukWa
- linux svn 命令
- treeview
- 4700万的阿斯顿马丁ONE-77