相機相冊獲取圖片

要寫相機權限

Activity

package com.example.day20rk;

import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;

public class CameraActivity extends AppCompatActivity {
private ImageView iv_image;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_camera);
    iv_image = findViewById(R.id.iv_image);
    iv_image.setOnClickListener(new View.OnClickListener() {

        private Button del;
        private Button album;
        private Button camera;

        @Override
        public void onClick(View v) {
            View view = View.inflate(CameraActivity.this, R.layout.pop_camera, null);
            final PopupWindow pop = new PopupWindow(view,LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.MATCH_PARENT);
            pop.showAsDropDown(v,0,0);
            camera = view.findViewById(R.id.camera);
            album = view.findViewById(R.id.album);
            del = view.findViewById(R.id.del);
            camera.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    intent.addCategory("android.intent.category.DEFAULT");
                    startActivityForResult(intent, 1);
                }
            });
            album.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Intent.ACTION_PICK);
                    intent.setType("image/*");
                    startActivityForResult(intent, 2);
                }
            });
            del.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    pop.dismiss();
                }
            });
        }

    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode){
        //相機
        case 1:
            Bitmap bitmap = data.getParcelableExtra("data");
            iv_image.setImageBitmap(bitmap);
            break;
            //相冊
        case 2:
            //獲取系統返回的照片Uri
            Uri uri = data.getData();
            iv_image.setImageURI(uri);

String[] filePathColumn = {MediaStore.Images.Media.DATA};
//從系統中查詢指定Uri相應的照片
Cursor cursor = getContentResolver().query(uri,filePathColumn,null,null,null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
//獲取照片路徑
String picturePath = cursor.getString(columnIndex);
cursor.close();
Bitmap bmp = BitmapFactory.decodeFile(picturePath);
iv_image.setImageBitmap(bmp);

            break;
    }
}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章