안 드 로 이 드 그림 그리 기 (6) - 로 컬 그림 을 가 져 오 거나 사진 을 찍 습 니 다.
SD 카드 에서 그림 자원 을 가 져 오 거나 새 그림 을 찍 습 니 다.
코드 를 먼저 붙이다
그림 가 져 오기:
설명: 사진 을 찍 어서 가 져 오 면 그림 의 저장 주 소 를 지정 할 수 있 습 니 다. 설명 하지 않 습 니 다.
CharSequence[] items = {" ", " "};
new AlertDialog.Builder(this)
.setTitle(" ")
.setItems(items, new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if( which == SELECT_PICTURE ){
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent, " "), SELECT_PICTURE);
}else{
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, SELECT_CAMER);
}
}
})
.create().show();
그림 을 처리 하 는 방법 1. 그림 을 되 돌려 주 는 것 을 직접 처리 합 니 다.
설명:
1. 인터넷 에서 설명 한 바 와 같이 돌아 오 는 사진 을 직접 처리 하 는 것 은 시스템 에 의 해 압축 된 것 이지 만 자신 이 테스트 하 는 과정 에서 차이 가 없다.
2. 사용자 가 끊임없이 그림 을 다시 가 져 오 면 현재 의 Bmp 메모 리 를 방출 해 야 합 니 다. 그렇지 않 으 면 오류 가 발생 합 니 다!bmp.recycle()。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK){
//
Uri uri = data.getData();
ContentResolver cr = this.getContentResolver();
try {
if(bmp != null)// , ,
bmp.recycle();
bmp = BitmapFactory.decodeStream(cr.openInputStream(uri));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("the bmp toString: " + bmp);
imageSV.setBmp(bmp);
}else{
Toast.makeText(SetImageActivity.this, " ", Toast.LENGTH_SHORT).show();
}
}
그림 처리 방법 2. 그림 의 주 소 를 얻 은 다음 처리:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK){
Uri uri = data.getData();
String [] proj={MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery( uri,
proj, // Which columns to return
null, // WHERE clause; which rows to return (all rows)
null, // WHERE clause selection arguments (none)
null); // Order-by clause (ascending by name)
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String path = cursor.getString(column_index);
bmp = BitmapFactory.decodeFile(path);
System.out.println("the path is :" + path);
}else{
Toast.makeText(SetImageActivity.this, " ", Toast.LENGTH_SHORT).show();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.