java 그림 크기 조정 전체 화면 채우기

안드로이드에서는 서로 다른 픽셀폰의 다양화 때문에 한 장의 사진에 대해 서로 다른 픽셀을 확대하면 픽셀에 따라 디스플레이가 달라진다.
현재 다음과 같은 요구가 있습니다. 그림 한 장의 폭을 전체 화면으로 가득 채우고 표시합니다.
우리가 자주 하는 것은 아마도 다음과 같은 두 가지 방식으로 그림을 처리하는 것이다.
를 통해 속성 layout_ 정의parent="match_parent"및 layout_parent = "wrap_content"및 의 scaleType 속성을 사용하여 배율을 조정합니다.
- scaleType = "fitXY": 이 속성으로 설정하면 그림이 가로로 늘어나 그림이 변형될 수 있습니다. 그림에 글씨체가 있으면 큰일입니다.
- scale Type = "center Crop": 배율 조정은 괜찮을 것 같은데 어색해서 안 돼요.그림을 처리할 때 먼저 그림의 크기를 얻고 그림의 넓이를 확인한 후 축소한다.이렇게 하면 그림의 표시 범위가 확정된 후에 그림의 중심점으로 등비 축소하여 폭이 화면으로 가득 찰 때까지 한다.이렇게 하면 매우 난처하다. 그림의 위아래가 잘릴 것이다. 이렇게 하면 그림이 완전하지 않고 여전히 우리가 원하는 것이 아니다.
내 방법은 코드에서 축소를 통해 그림을 얻은 다음에 backgroud를 설정하는 방법으로 그림을 추가하면 해결된다. 그러면 코드를 올린다.

    // , 
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    int mScreenWidth = dm.widthPixels;//  
    int mScreenHeight = dm.heightPixels;

    // 
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
        R.drawable.bank_help);
    int bitmapWidth = bitmap.getWidth();
    int bitmapHeight = bitmap.getHeight();

    // 
    float num = mScreenWidth / (float)bitmapWidth;

    Matrix matrix = new Matrix();
    matrix.postScale(num, num);
    //  Bitmap 
    Bitmap resizeBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmapWidth,
        bitmapHeight, matrix, true);

상기 코드는 다음과 같은 절차로 나뉜다
1. 화면 해상도를 가져옵니다.
2. 사진 얻기 및 높이 측정, 사진 얻기
3. 화면 너비/그림 너비로 대응하는 배율 조정
4. Matrix 객체를 작성하고 배율을 결정합니다.(ps: 이 물건은 매우 입에 물고 앞의 그라데이션 색에서도 수정 대상에 쓰인다)
5. 비트맵을 통해.createBitmap () 방법으로 그림을 생성합니다.(ps: 마지막 매개 변수는true를 보내야 합니다.false를 보내면 축소된 그림이 잘 보이지 않습니다.)
이상은 자바 이미지 처리 관련 조작 소개입니다. 여러분의 학습에 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기