标签:android style blog http color os strong io
Android SDK支持操作Android设备内置的照相机。从Android2.3开始,支持操作多个摄像头(主要指前置摄像头和后置照相机)。通过照相机可以拍照和录像。
SurfaceView、
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-feature android:name="android.hardware.camera" />
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="fill_parent" 4 android:layout_height="fill_parent" 5 android:orientation="vertical" > 6 7 <Button 8 android:id="@+id/btnTakePicture" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:text="拍照" /> 12 13 <ImageView 14 android:id="@+id/imageview" 15 android:layout_width="320dp" 16 android:layout_height="240dp" /> 17 18 </LinearLayout>
1 import android.app.Activity; 2 import android.content.Intent; 3 import android.graphics.Bitmap; 4 import android.os.Bundle; 5 import android.provider.MediaStore; 6 import android.view.View; 7 import android.view.View.OnClickListener; 8 import android.widget.Button; 9 import android.widget.ImageView; 10 11 public class Main extends Activity implements OnClickListener { 12 private ImageView imageView; 13 14 @Override 15 public void onCreate(Bundle savedInstanceState) { 16 super.onCreate(savedInstanceState); 17 setContentView(R.layout.main); 18 19 Button btnTakePicture = (Button) findViewById(R.id.btnTakePicture); 20 btnTakePicture.setOnClickListener(this); 21 22 imageView = (ImageView) findViewById(R.id.imageview); 23 } 24 25 public void onClick(View view) { 26 // 调用系统拍照 27 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 28 // 显示拍照窗口 29 startActivityForResult(intent, 1); 30 } 31 32 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 33 if (requestCode == 1) { 34 if (resultCode == Activity.RESULT_OK) { 35 Bitmap cameraBitmap = (Bitmap) data.getExtras().get("data"); 36 imageView.setImageBitmap(cameraBitmap); 37 } 38 } 39 } 40 41 }
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="cn.eoe.system.camera" android:versionCode="1" 4 android:versionName="1.0"> 5 <application android:icon="@drawable/icon" android:label="@string/app_name"> 6 <activity android:name=".Main" android:label="@string/app_name"> 7 <intent-filter> 8 <action android:name="android.intent.action.MAIN" /> 9 <category android:name="android.intent.category.LAUNCHER" /> 10 </intent-filter> 11 </activity> 12 </application> 13 <uses-sdk android:minSdkVersion="7" /> 14 </manifest>
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="fill_parent" 4 android:layout_height="fill_parent" 5 android:orientation="vertical" > 6 7 <Button 8 android:id="@+id/btnTakePicture" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:text="录像" /> 12 13 <VideoView 14 android:id="@+id/videoview" 15 android:layout_width="wrap_content" 16 android:layout_height="wrap_content" /> 17 18 </LinearLayout>
1 import android.app.Activity; 2 import android.content.Intent; 3 import android.database.Cursor; 4 import android.net.Uri; 5 import android.os.Bundle; 6 import android.provider.MediaStore; 7 import android.view.View; 8 import android.view.View.OnClickListener; 9 import android.widget.Button; 10 import android.widget.MediaController; 11 import android.widget.VideoView; 12 13 public class Main extends Activity implements OnClickListener { 14 public VideoView videoView; 15 16 @Override 17 public void onCreate(Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.main); 20 Button btnTakePicture = (Button) findViewById(R.id.btnTakePicture); 21 btnTakePicture.setOnClickListener(this); 22 23 videoView = (VideoView) findViewById(R.id.videoview); 24 25 } 26 27 public void onClick(View view) { 28 Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 29 startActivityForResult(intent, 1); 30 } 31 32 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 33 if (requestCode == 1) { 34 if (resultCode == Activity.RESULT_OK) { 35 Uri uri = data.getData(); 36 Cursor cursor = this.getContentResolver().query(uri, null, 37 null, null, null); 38 39 if (cursor.moveToFirst()) { 40 // 取出路径 41 String videoPath = cursor.getString(cursor 42 .getColumnIndex("_data")); 43 // 加载 44 videoView.setVideoURI(Uri.parse(videoPath)); 45 // 设置视频控制控件(停止,快进等)。 46 videoView.setMediaController(new MediaController(this)); 47 // 播放。 48 videoView.start(); 49 } 50 } 51 } 52 } 53 54 }
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="cn.eoe.record.video" android:versionCode="1" 4 android:versionName="1.0"> 5 <application android:icon="@drawable/icon" android:label="@string/app_name"> 6 <activity android:name="Main" android:label="@string/app_name"> 7 <intent-filter> 8 <action android:name="android.intent.action.MAIN" /> 9 <category android:name="android.intent.category.LAUNCHER" /> 10 </intent-filter> 11 </activity> 12 </application> 13 <uses-sdk android:minSdkVersion="7" /> 14 </manifest>
private boolean checkCameraHardware(Context context) {
if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA))
{ return true; } else { return false; }
}
标签:android style blog http color os strong io
原文地址:http://www.cnblogs.com/androidsj/p/3869892.html