国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android手機拍照或選取圖庫圖片作為頭像

2020-04-11 11:29:36
字體:
來源:轉載
供稿:網友
package zhangpgil.photo; import java.io.File;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.Toast;import android.content.Intent;import android.graphics.Bitmap;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore; public class MainActivity extends ActionBarActivity {   /* 頭像文件 */  private static final String IMAGE_FILE_NAME = "temp_head_image.jpg";   /* 請求識別碼 */  private static final int CODE_GALLERY_REQUEST = 0xa0;  private static final int CODE_CAMERA_REQUEST = 0xa1;  private static final int CODE_RESULT_REQUEST = 0xa2;   // 裁剪后圖片的寬(X)和高(Y),480 X 480的正方形。(生成bitmap貌似有時要報錯?可試下把大小弄小點)  private static int output_X = 480;  private static int output_Y = 480;   private ImageView headImage = null;   @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);     headImage = (ImageView) findViewById(R.id.imageView);     Button buttonLocal = (Button) findViewById(R.id.buttonLocal);    buttonLocal.setOnClickListener(new View.OnClickListener() {       @Override      public void onClick(View v) {        choseHeadImageFromGallery();      }    });     Button buttonCamera = (Button) findViewById(R.id.buttonCamera);    buttonCamera.setOnClickListener(new View.OnClickListener() {       @Override      public void onClick(View v) {        choseHeadImageFromCameraCapture();      }    });  }   // 從本地相冊選取圖片作為頭像  private void choseHeadImageFromGallery() {    Intent intentFromGallery = new Intent();    // 設置文件類型    intentFromGallery.setType("image/*");    intentFromGallery.setAction(Intent.ACTION_GET_CONTENT);    startActivityForResult(intentFromGallery, CODE_GALLERY_REQUEST);  }   // 啟動手機相機拍攝照片作為頭像  private void choseHeadImageFromCameraCapture() {    Intent intentFromCapture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);     // 判斷存儲卡是否可用,存儲照片文件    if (hasSdcard()) {      intentFromCapture.putExtra(MediaStore.EXTRA_OUTPUT, Uri          .fromFile(new File(Environment              .getExternalStorageDirectory(), IMAGE_FILE_NAME)));    }     startActivityForResult(intentFromCapture, CODE_CAMERA_REQUEST);  }   @Override  protected void onActivityResult(int requestCode, int resultCode,      Intent intent) {     // 用戶沒有進行有效的設置操作,返回    if (resultCode == RESULT_CANCELED) {      Toast.makeText(getApplication(), "取消", Toast.LENGTH_LONG).show();      return;    }     switch (requestCode) {    case CODE_GALLERY_REQUEST:      cropRawPhoto(intent.getData());      break;     case CODE_CAMERA_REQUEST:      if (hasSdcard()) {        File tempFile = new File(            Environment.getExternalStorageDirectory(),            IMAGE_FILE_NAME);        cropRawPhoto(Uri.fromFile(tempFile));      } else {        Toast.makeText(getApplication(), "沒有SDCard!", Toast.LENGTH_LONG)            .show();      }       break;     case CODE_RESULT_REQUEST:      if (intent != null) {        setImageToHeadView(intent);      }       break;    }     super.onActivityResult(requestCode, resultCode, intent);  }   /**   * 裁剪原始的圖片   */  public void cropRawPhoto(Uri uri) {     Intent intent = new Intent("com.android.camera.action.CROP");    intent.setDataAndType(uri, "image/*");     // 設置裁剪    intent.putExtra("crop", "true");     // aspectX , aspectY :寬高的比例    intent.putExtra("aspectX", 1);    intent.putExtra("aspectY", 1);     // outputX , outputY : 裁剪圖片寬高    intent.putExtra("outputX", output_X);    intent.putExtra("outputY", output_Y);    intent.putExtra("return-data", true);     startActivityForResult(intent, CODE_RESULT_REQUEST);  }   /**   * 提取保存裁剪之后的圖片數據,并設置頭像部分的View   */  private void setImageToHeadView(Intent intent) {    Bundle extras = intent.getExtras();    if (extras != null) {      Bitmap photo = extras.getParcelable("data");      headImage.setImageBitmap(photo);    }  }   /**   * 檢查設備是否存在SDCard的工具方法   */  public static boolean hasSdcard() {    String state = Environment.getExternalStorageState();    if (state.equals(Environment.MEDIA_MOUNTED)) {      // 有存儲的SDCard      return true;    } else {      return false;    }  }}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical" >   <ImageView    android:id="@+id/imageView"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:src="@drawable/ic_launcher" />   <Button    android:id="@+id/buttonLocal"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="本地相冊選取頭像" />   <Button    android:id="@+id/buttonCamera"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="手機拍照選取頭像" /> </LinearLayout>

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孟村| 斗六市| 喀喇沁旗| 安西县| 闵行区| 铅山县| 伊宁县| 瓦房店市| 西乌| 小金县| 板桥市| 西峡县| 大兴区| 瑞金市| 连云港市| 高唐县| 蒙山县| 宜宾市| 东丰县| 泊头市| 潢川县| 印江| 沈丘县| 济源市| 福建省| 驻马店市| 修武县| 鄂托克前旗| 元江| 图片| 湛江市| 从江县| 丽水市| 汝城县| 鹰潭市| 天门市| 宁海县| 额济纳旗| 新巴尔虎左旗| 阿勒泰市| 伊宁县|