打開手機圖庫和打開照相機返回選中的圖片簡單小運用

打開手機圖庫和打開照相機返回選中的圖片簡單小運用android

功能:界面有2個按鈕 一、選擇照片 二、拍攝照片 把選擇的照片或者拍攝的照片顯示在該頁面ide

//1 -- 佈局界面 activity_main.xml
代碼佈局

<LinearLayout 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:orientation="vertical" >this

    <ImageView
        android:id="@+id/imageview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="選擇圖片"
        android:onClick="choose_image"
         />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="拍攝照片"
        android:onClick="camere"
         />code

</LinearLayout>
-------------------------xml

//2 -- MainActivity 類對象

代碼事件

public class MainActivity extends Activity {
private ImageView image;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  image = (ImageView) this.findViewById(R.id.imageview);
 }
 //打開圖庫 選擇 圖片 按鈕 事件 監聽
 public void choose_image(View view){
  Intent intent = new Intent();
  //打開圖庫
  intent.setAction(intent.ACTION_PICK);
//設置圖片的類型 -- 所有類型/*
  intent.setType("image/*");
  int requestCode = 1;
//用帶返回結果的啓動跳轉方法
  startActivityForResult(intent, requestCode );
 }
 
 //拍攝 照片 按鈕 事件 監聽
 public void camere(View view){
  Intent intent = new Intent();
  //打開相機
  intent.setAction("android.media.action.IMAGE_CAPTURE");
  int requestCode = 2;
  startActivityForResult(intent, requestCode );
 }
 @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);
   if(data == null || resultCode !=Activity.RESULT_OK){
    Toast.makeText(this, "沒有選擇圖片!", Toast.LENGTH_SHORT).show();
    return ;
   }
   if(requestCode == 1){
    //用getData方法 獲取 從圖庫 返回來的 數據
    Uri uri = data.getData();
    //用 ContentResolver 解析器 解析返回來的 數據
    ContentResolver cr = getContentResolver();
    try {
     //把返回來的數據 給 openInputStream 進行 解析
     InputStream is = cr.openInputStream(uri);
     //解析工廠 對流 is 對象 進行 解析
     Bitmap bitmap = BitmapFactory.decodeStream(is);
     image.setImageBitmap(bitmap);
    } catch (FileNotFoundException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
   if(requestCode == 2){
    //獲取 拍攝的數據 -- 方法getParcelableExtra
    Bitmap bitmap = data.getParcelableExtra("data");
    image.setImageBitmap(bitmap);
   }
  }
}圖片

相關文章
相關標籤/搜索