0
ImageButton을 가지고 있는데, 그것을 누르면 휴대폰으로 사진을 찍을 수 있습니다. 사진을 찍을 때 ImageButtons는 사진을 소스로 가져옵니다. 그러나 문제는 이미지가 ImageButton의 크기로 축소되지 않는다는 것입니다. 이미지를 축소하는 대신 이미지의 일부만 보여줍니다. 약간의 연구를 한 후에 나는 당신이 무승부 9 패치를 사용해야한다는 것을 알았다. 그러나 이미지는 내 리소스에 없기 때문에이 경우에는 불가능합니다. 리소스 자체는 사용자가 만듭니다.방금 이미지를 이미지 버튼에 맞추기
누군가가 도와 줄 수 있습니까?
내 코드 :
if (requestCode == REQUEST_CAMERA) {
File f = new File(Environment.getExternalStorageDirectory().toString());
for (File temp : f.listFiles()) {
if (temp.getName().equals("temp.jpg")) {
f = temp;
break;
}
}
try {
Bitmap bm;
BitmapFactory.Options btmapOptions = new BitmapFactory.Options();
bm = BitmapFactory.decodeFile(f.getAbsolutePath(),btmapOptions);
// bm = Bitmap.createScaledBitmap(bm, 70, 70, true);
btnImg.setImageBitmap(bm);
String path = android.os.Environment.getExternalStorageDirectory() + File.separator + "Phoenix" + File.separator + "default";
f.delete();
OutputStream fOut = null;
File file = new File(path, String.valueOf(System.currentTimeMillis()) + ".jpg");
try {
fOut = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
fOut.flush();
fOut.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
else if (requestCode == SELECT_FILE) {
Uri selectedImageUri = data.getData();
String tempPath = getPath(selectedImageUri, MainActivity.this);
Bitmap bm;
BitmapFactory.Options btmapOptions = new BitmapFactory.Options();
bm = BitmapFactory.decodeFile(tempPath, btmapOptions);
btnImg.setImageBitmap(bm);
}
이것은 두 번째 이미지를 삽입 한 후 나에게 적합하지만 응용 프로그램이 충돌합니다. 관련이 있습니까, 아니면 새로운 질문을해야합니까? – mXX
은 OutOfMemoryException이어야합니다. 새 질문을 추가하십시오. – Ronnie