Androidでは、ピクセルが異なる携帯電話の多様性により、写真の場合、異なるピクセルのために異なる携帯電話の表示に違いがあります。
画面全体を画像幅で埋めて表示する必要があります。
私たちが頻繁に行うことは、次の2つの方法で画像を処理することかもしれません。
属性layout_parent = "match_parent"およびlayout_parent = "wrap_content"を<imageView>を介して定義し、スケーリングに<ImageView>のScaleType属性を使用します。
-scaletype = "fitxy":このプロパティに設定すると、画像が水平に伸び、画像が変形します。画像にフォントがある場合、これは悪いことです。
-ScaleType = "CenterCrop":同じ比率でスケーリングするには問題ありませんが、非常に恥ずかしいことですが、それでも機能しません。画像を処理すると、最初に画像のサイズが取得され、次に画像の幅と高さがスケーリング前に決定されます。このようにして、画像の範囲が決定された後、画像の中心点は、幅が画面を完全に埋めるまで等しくスケーリングされます。これは非常に恥ずかしいです。写真の上部と下部は遮断されるため、写真は完全には表示されず、それでも私たちが望むものではありません。
私のアプローチは、コードをスケーリングした後に画像を取得し、問題を解決するBackGroudを設定して画像を追加することです。次に、上記のコード:
//画像の解像度を取得し、幅DisplayMetrics DM = new DisplayMetrics()を取得します。 getWindowManager()。getDefaultDisplay()。getMetrics(DM); int mscreenwidth = dm.widthpixels; // get screen resolution width int mscreenheight = dm.heightpixels; //画像ビットマップビットマップ= bitmapfactory.decoderesource(getResources()、r.drawable.bank_help); int bitmapwidth = bitmap.getWidth(); int bitmapheight = bitmap.getheight(); //画像幅比を取得フロートnum = mscreenwidth /(float)bitmapwidth; Matrix Matrix = new Matrix(); matrix.postscale(num、num); //スケーリングされたビットマップオブジェクトビットマップseizeBitMap = bitmap.createbitmap(bitmap、0、0、bitmapwidth、bitmapheight、matrix、true)を生成します。
上記のコードは、次の手順に分かれています
1.画面の解像度を取得します。
2。画像を取得し、画像の幅と高さを測定します。
3.画面の幅/画像幅を介して対応するズーム比を取得します
4.マトリックスオブジェクトを作成し、スケーリングを決定します。 (PS:このことはとても素敵で、オブジェクトは前面のグラデーション色で変更するためにも使用されます)
5。bitmap.createbitmap()メソッドを介して画像を生成します。 (PS:最後のパラメーターを真に渡す必要があります。falseが渡された場合、ズームされた画像は明確に表示されません)
上記は、Java画像処理関連操作の紹介です。すべての人の学習に役立つことを願っています。