要寫相機權限
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;
}
}
}