Android调用相机拍摄照片并显示到 ImageView控件中
生活随笔
收集整理的這篇文章主要介紹了
Android调用相机拍摄照片并显示到 ImageView控件中
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在前面的一篇文章中曾介紹過簡單的開啟相機照相功能,詳見?
Android簡單調用相機Camera功能,實現打開照相功能?,這一次就會將前面拍攝的照片顯示到ImageView中,形成一個完整的效果 看實例 MainActivity.java
package com.example.camera;import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;public class MainActivity extends Activity {
/** Called when the activity is first created. */
String SD_CARD_TEMP_DIR;
Bitmap myBitmap;
private ImageView imageView;@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//
SD_CARD_TEMP_DIR = Environment.getExternalStorageDirectory()
+ File.separator + "tmp.jpg";//設定照相后保存的文件名,類似于緩存文件imageView = (ImageView)findViewById(R.id.imageView1);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent cameraIntent = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,
Uri.fromFile(new File(SD_CARD_TEMP_DIR)));
startActivityForResult(cameraIntent, 0);
}
});
}@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 0){
Log.d("requestCode", "Need 0");
if(resultCode == RESULT_OK){
Log.d("resultCode", "OK!!!" + SD_CARD_TEMP_DIR);
myBitmap = BitmapFactory.decodeFile(SD_CARD_TEMP_DIR);
imageView.setImageBitmap(myBitmap);
}else{
Log.d("resultCode", "" + resultCode);
}
}else{
Log.d("requestCode", "Not Need");
}
}
} 看一下 ?activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" ><Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Button" /><ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button1"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_launcher" /></RelativeLayout> 最好,再配置一下權限吧,看AndroidMainFest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.camera"
android:versionCode="1"
android:versionName="1.0" ><uses-permission android:name="android.permission.CAMERA" /><uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
</uses-permission><uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.camera.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application></manifest> 這個地方,還要注意的是 ?android:hardwareAccelerated="false"? 這一句,如果我們不加這一句的情況下,會很容易出現以下問題 Bitmap too large to be uploaded into a texture 因此,我們需要將硬件加速功能關閉。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的Android调用相机拍摄照片并显示到 ImageView控件中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android简单实现Socket通信,
- 下一篇: Android简单实现将手机图片上传到服