public MyView(Context c) {
super(c);
mutable가능한 비트맵만듭니다.
mBitmap = Bitmap.createBitmap(470, 705, Bitmap.Config.ARGB_8888);
캔바스에 비트맵넣습니다.
mCanvas = new Canvas(mBitmap);
사진 갤러리에서 불러옵니다
getPhoto();
mPath = new Path();
mBitmapPaint = new Paint(Paint.DITHER_FLAG);
}
public void getPhoto(){
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"사진을 선택해주세요"), SELECT_PICTURE);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
선택한 사진 uri 받아서 비트맵 만듭니다.
PicBitmap = BitmapFactory.decodeFile(selectedImagePath);
여기서 선택한사진을 캔바스쪽에 그립니다. 제예상으로는 PicBitmap이 그려져야되는데 안그려지네요
mCanvas.drawBitmap(PicBitmap, 50, 50, null);
}
}
}
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
캔바스에 mutable 가능한 비트맵을 넣고 다음에 그 비트맵 안에다가 mutable 불가능한 비트맵을 캔바스안에 그릴려고합니다.
불러온사진을 캔바스가 그려야되는데 안그려지네요. URI로 비트맵을 불러와서 그런건가요?
구글링해보겠지만 아직 감이안잡히네요. 도움좀 부탁드려요




좀 꼼수이지만 해결했습니다. fingerprint API를 갖다썼는데 onCreateOptionsMenu 안에 있는 메뉴중 하나의 case에서 getPhoto()메서드를 넣고
mCanvas.drawBitmap(PicBitmap, 50, 50, null); 을 넣었습니다. 메뉴바에서 메뉴를 클릭하게되면 사진이 출력되더군요.
public boolean onOptionsItemSelected(MenuItem item) {
mPaint.setXfermode(null);
mPaint.setAlpha(0xFF);
switch (item.getItemId()) {
case SRCATOP_MENU_ID:
getPhoto();
mCanvas.drawBitmap(PicBitmap, 0, 0, null);