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

歡迎訪問 生活随笔!

生活随笔

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

windows

android 打开系统相机,

發布時間:2023/12/9 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 打开系统相机, 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.第一步在androidmanifest。xml中注冊

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

2.第二步創建activity_creama.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"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:paddingBottom="@dimen/activity_vertical_margin"tools:context="com.cqytjr.www.networkreceiver.CramaActivity"><Buttonandroid:id="@+id/btn_creama"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:text="@string/hello_world"tools:context=".CramaActivity" /><ImageViewandroid:id="@+id/img_creama"android:layout_width="150dip"android:layout_height="150dip"android:layout_margin="15dip"android:layout_centerHorizontal="true"android:layout_below="@+id/btn_creama"android:scaleType="fitXY"/><TextViewandroid:id="@+id/text"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_below="@+id/img_creama"android:textSize="16sp"android:background="#22000000"/></RelativeLayout>

3. 第三步創建cramaactivity

import java.io.ByteArrayOutputStream; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date;import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView;public class CramaActivity extends Activity {private Button creama=null;private ImageView img=null;private TextView text=null;private File tempFile = new File(Environment.getExternalStorageDirectory(),getPhotoFileName());private static final int PHOTO_REQUEST_TAKEPHOTO = 1;// 拍照private static final int PHOTO_REQUEST_GALLERY = 2;// 從相冊中選擇private static final int PHOTO_REQUEST_CUT = 3;// 結果@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_crama);init();Log.i("TAG-->", ""+Environment.getExternalStorageDirectory());}private void init() {// TODO Auto-generated method stubcreama=(Button) findViewById(R.id.btn_creama);img=(ImageView) findViewById(R.id.img_creama);creama.setOnClickListener(listener);text=(TextView) findViewById(R.id.text);}protected void onActivityResult(int requestCode, int resultCode, Intent data) {switch (requestCode) {case PHOTO_REQUEST_TAKEPHOTO:// 當選擇拍照時調用startPhotoZoom(Uri.fromFile(tempFile));break;case PHOTO_REQUEST_GALLERY:// 當選擇從本地獲取圖片時// 做非空判斷,當我們覺得不滿意想重新剪裁的時候便不會報異常,下同if (data != null)startPhotoZoom(data.getData());break;case PHOTO_REQUEST_CUT:// 返回的結果if (data != null)// setPicToView(data);sentPicToNext(data);break;}super.onActivityResult(requestCode, resultCode, data);}private OnClickListener listener = new OnClickListener(){@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubIntent cameraintent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);// 指定調用相機拍照后照片的儲存路徑cameraintent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(tempFile));startActivityForResult(cameraintent, PHOTO_REQUEST_TAKEPHOTO);}};private void startPhotoZoom(Uri uri) {Intent intent = new Intent("com.android.camera.action.CROP");intent.setDataAndType(uri, "image/*");// crop為true是設置在開啟的intent中設置顯示的view可以剪裁intent.putExtra("crop", "true");// aspectX aspectY 是寬高的比例intent.putExtra("aspectX", 1);intent.putExtra("aspectY", 1);// outputX,outputY 是剪裁圖片的寬高intent.putExtra("outputX", 300);intent.putExtra("outputY", 300);intent.putExtra("return-data", true);intent.putExtra("noFaceDetection", true);startActivityForResult(intent, PHOTO_REQUEST_CUT);}// 將進行剪裁后的圖片傳遞到下一個界面上private void sentPicToNext(Intent picdata) {Bundle bundle = picdata.getExtras();if (bundle != null) {Bitmap photo = bundle.getParcelable("data");if (photo==null) {img.setImageResource(R.drawable.ic_launcher);}else {img.setImageBitmap(photo); // 設置文本內容為 圖片絕對路徑和名字text.setText(tempFile.getAbsolutePath());}ByteArrayOutputStream baos = null;try {baos = new ByteArrayOutputStream();photo.compress(Bitmap.CompressFormat.JPEG, 100, baos);byte[] photodata = baos.toByteArray();System.out.println(photodata.toString());// Intent intent = new Intent();// intent.setClass(RegisterActivity.this, ShowActivity.class);// intent.putExtra("photo", photodata);// startActivity(intent);// finish();} catch (Exception e) {e.getStackTrace();} finally {if (baos != null) {try {baos.close();} catch (Exception e) {e.printStackTrace();}}}}}// 使用系統當前日期加以調整作為照片的名稱private String getPhotoFileName() {Date date = new Date(System.currentTimeMillis());SimpleDateFormat dateFormat = new SimpleDateFormat("'IMG'_yyyyMMdd_HHmmss");return dateFormat.format(date) + ".jpg";} }

?

?

?

?

?

?

第二種方式,我們不需要剪裁,直接用:

androidmanifest注冊

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

?第二部:

xml文件添加一個imageview

<ImageViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:src="@drawable/ic_launcher"android:id="@+id/imageView"/>

?activity代碼

public class MainActivity extends Activity {GridView gridView;ImageView imageView;private Bitmap bitmap;final static int REQUEST_CODE_PICK_IMAGE = 1;final static int REQUEST_CODE_CAPTURE_CAMEIA = 2;protected void getImageFromAlbum() {Intent intent = new Intent(Intent.ACTION_PICK);intent.setType("image/*");//相片類型startActivityForResult(intent, REQUEST_CODE_PICK_IMAGE);}protected void getImageFromCamera() {String state = Environment.getExternalStorageState();if (state.equals(Environment.MEDIA_MOUNTED)) {Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE");startActivityForResult(getImageByCamera, REQUEST_CODE_CAPTURE_CAMEIA);}else {Toast.makeText(getApplicationContext(), "請確認已經插入SD卡", Toast.LENGTH_LONG).show();}}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);// gridView = (GridView)findViewById(R.id.grid_view);imageView = (ImageView) findViewById(R.id.imageView);imageView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {getImageFromAlbum();}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == REQUEST_CODE_PICK_IMAGE) {Uri uri = data.getData(); // Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri);try {Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),uri);imageView.setImageBitmap(bitmap);} catch (IOException e) {e.printStackTrace();}} else if (requestCode == REQUEST_CODE_CAPTURE_CAMEIA ) {Bundle extras = data.getExtras();Bitmap map = (Bitmap)extras.get("data");imageView.setImageBitmap(map);} }}

?

轉載于:https://www.cnblogs.com/hualuoshuijia/p/6911435.html

總結

以上是生活随笔為你收集整理的android 打开系统相机,的全部內容,希望文章能夠幫你解決所遇到的問題。

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