Android에서는 픽셀이 다른 휴대 전화의 다양성으로 인해 사진의 경우 픽셀로 인해 다른 휴대 전화의 표시에 차이가 있습니다.
전체 화면을 그림 너비로 채우고 표시해야합니다.
우리가 자주하는 일은 다음 두 가지 방법으로 이미지를 처리하는 것입니다.
속성 layout_parent = "match_parent"및 layout_parent = "wrap_content"를 통해 <imageview>를 통과하고 스케일링에 <imageview>의 ScaleType 속성을 사용하십시오.
-ScaleType = "FitXy": 이 속성으로 설정하면 이미지가 수평으로 스트레치되어 이미지가 변형되며 이미지에 글꼴이 있으면 나쁜 일이됩니다.
-ScaleType = "CenterCrop": 같은 비율로 확장하는 것은 좋지만 매우 창피하지만 여전히 작동하지 않습니다. 이미지를 처리 할 때 이미지의 크기가 먼저 얻어지면 스케일링 전에 이미지의 너비와 높이가 결정됩니다. 이런 식으로, 그림의 범위가 결정된 후에, 너비가 화면을 완전히 채울 때까지 그림의 중심점은 동일하게 조정됩니다. 이것은 매우 당황스럽고 그림의 상단과 하단 부분이 잘릴 수 있으므로 그림이 완전히 표시되지 않으며 여전히 우리가 원하는 것이 아닙니다.
내 접근 방식은 코드에서 스케일링 한 후 이미지를 얻은 다음 백 그라우드를 설정하여 이미지를 추가하여 문제를 해결하는 것입니다. 위의 코드 :
// 이미지의 해상도를 얻고 너비를 가져옵니다. displayMetrics dm = new DisplayMetrics (); getWindowManager (). getDefaultDisplay (). getMetrics (dm); int mscreenwidth = dm.widthpixels; // 화면 해상도 폭을 가져옵니다 int mscreenheight = dm.heightpixels; // 이미지를로드 비트 맵 비트 맵 = bitMapFactory.DecoDeresource (getResources (), r.Drawable.bank_help); int bitmapwidth = bitmap.getWidth (); int bitmapeight = bitmap.getheight (); // 이미지 너비 비율을 가져옵니다. float num = mscreenwidth /(float) bitmapwidth; 매트릭스 행렬 = new Matrix (); matrix.postscale (num, num); // 스케일링 된 비트 맵 객체 생성 비트 맵 resizebitMap = bitmap.createbitMap (비트 맵, 0, 0, bitmapWidth, bitmapheight, matrix, true);
위의 코드는 다음 단계로 나뉩니다
1. 화면 해상도를 얻으십시오.
2. 이미지를 얻고 이미지의 너비와 높이를 측정하십시오.
3. 화면 너비/이미지 너비를 통해 해당 줌 비율을 가져옵니다.
4. 행렬 객체를 만들고 스케일링을 결정하십시오. (PS : 이것은 매우 좋으며, 객체는 또한 전면의 그라디언트 색상으로 수정하는 데 사용됩니다).
5. BitMap.CreateBitMap () 메소드를 통해 이미지를 생성합니다. (PS : 마지막 매개 변수는 true를 전달해야합니다. False가 전달되면 확대 된 이미지가 명확하게 표시되지 않습니다)
위의 것은 Java 이미지 처리 관련 작업에 대한 소개입니다. 모든 사람의 학습에 도움이되기를 바랍니다.