android에서 ImageView에서 Bitmap 이미지를 완벽하게 채우기
질문 1: 너무 큰 비트맵.ImageView에 (2000+)*(4000+)의 천만 픽셀 정도의 그림을 채우면 ImageView가 표시되지 않고 검은색 화면으로 바뀝니다.
문제2: 너무 작은 그림은 화면의 공간을 충분히 이용하기 위해 작은 그림을 가능한 한 확대해야 한다.우리가 해야 할 일은 그림을 비례에 따라 축소/확대하여 길이나 너비 중 하나가 ImageView의 길이나 너비보다 작게 하는 것이다.
다음 두 가지 문제를 해결하기 위해 다음을 수행합니다.
CENTER /center size , / View / ,
CENTER_CROP / centerCrop size , ( ) View ( )
CENTER_INSIDE / centerInside , size / View /
FIT_CENTER / fitCenter / View ,
FIT_END / fitEnd / View , View
FIT_START / fitStart / View , View
FIT_XY / fitXY / View
MATRIX / matrix
그 중
center: 화면 비율과 맞지 않는 그림은 캡처되기 때문에 안 됩니다.
centerCrop: 동상.
centerInside: 작은 그림을 확대할 수 없습니다. 그리고 필자는 장치의 길이와 비례가 일치하는 그림을 놓을 때 검은 변이 생겼습니다. 테스트에서 비트맵이 전체 ImageView를 덮어쓰지 않았다는 것을 발견했습니다.
fitCenter: 문제1은 해결할 수 없지만 우리가 요구하는 효과에 가장 가까운 것 같지만 마찬가지로 테스트할 때 검은 테두리를 발견했다.
fitEnd/fitStart: 이 두 개의 중간에 있지 않은 것은 토론하지 않겠습니다.
matrix: 이것은 우리가 비례에 따라 확대/축소하는 요구를 만족시킬 수 없습니다.
검은색 테두리 때문에 저는 ImageView의 자동 축소 기능을 완전히 신뢰할 수 없습니다. 마지막으로 필자는 비트맵의 사이즈를 수동으로 조정하는 +ScaleType=센터를 선택했습니다. (축소는 지원되지 않지만 우리는 이미 수동으로 축소를 끝냈습니다) 해결했습니다.
주요 사항:
1. 세로로 가로로 된 그림을 보여주려면 축소 처리를 해야 한다. 마찬가지로 너무 큰 그림은 길이와 폭이 설비의 길이보다 작을 때까지 축소할 것을 요구한다.
2. 반대로 너무 작은 그림에 대해 우리는 그것을 길이나 너비의 하나가 설비의 길이와 같을 때까지 확대할 것을 요구한다.
3. XML에서 ImageView의 scaleType = "center"정의
키 코드:
private void createScaledBitmap(){
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels+1;
int height = dm.heightPixels+1;
int t_width;
int t_height;
if (bitmap.getWidth()>width || bitmap.getHeight()>height){
t_width = width;
t_height = bitmap.getHeight()*width/bitmap.getWidth();
if (t_height>height){
t_width = t_width*height/t_height;
t_height = height;
}
} else
if (bitmap.getWidth()height){
t_width = t_width*height/t_height;
t_height = height;
}
} else {
t_width = bitmap.getWidth();
t_height = bitmap.getHeight();
}
bitmap = Bitmap.createScaledBitmap(bitmap, t_width, t_height, true);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.