이상한 일이 발생합니다. 적어도 이해하지 못합니다.Android - 프로그래밍 방식으로 이미지를 축소 한 후 크기 조정
하나의 ImageButton에 표시되는 이미지 (w : 120px, h : 63px)가 있습니다. 그 이미지의 유일한 변형은 drawable-hdpi에 위치합니다 (다른 drawable 디렉토리는 없습니다). 모든 것이이 이미지와 모든 해상도 (밀도)로 괜찮습니다. 안드로이드는 매우 멋지게 처리합니다.
그러나 앨범에서 사진 (예 : 매우 큰 사진)을 찍은 다음 버튼 크기 (이전에 언급 한, w : 120px h : 63px)로 크기를 조절하고 그 작은 이미지를 ImageButton 배경.
중 밀도 (160)의 에뮬레이터에서 테스트 할 때 크기가 조정 된 이미지가 작아 보이므로 고밀도 버튼이있는 장치에서 테스트 할 때 크기가 조정됩니다.
누구나 무슨 일이 일어나고 있는지, 그리고 크기를 조정 한 후에 이미지의 크기가 다시 변경된 이유는 무엇입니까?
모든 단서는 높이 평가 될 것입니다.
public static void resizeAndSaveImage(String pathToResize, int newWidth, int newHeight, FileOutputStream output) {
try {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap bitmap = BitmapFactory.decodeStream(new FileInputStream(pathToResize), null, options);
if (bitmap != null) {
int width = bitmap.getWidth();
int height = bitmap.getHeight();
float scaleWidth = ((float) newWidth)/width;
float scaleHeight = ((float) newHeight)/height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);
resizedBitmap.compress(Bitmap.CompressFormat.PNG, 100, output);
output.close();
}
} catch (Exception e) {
// ...
}
차원 매개 변수는 다음과 같이 전달됩니다 : 여기
내가 이미지 크기를 조정에 사용하는 코드입니다 newWidth = 120, newHeight = 당신은 당신이 원하는 것을 달성하기 위해 63
1.5 API를 설정, 그 크기 조정에서 안드로이드가 중단하지만, 수단, 당신은 그것을해야 할 것이다. –