日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android调用相机拍摄照片并显示到 ImageView控件中

發布時間:2024/1/17 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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控件中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。