[解決済み】ImageViewの幅いっぱいに画像を拡大縮小し、縦横比を維持する。
2022-04-19 13:31:11
質問
私は
GridView
. のデータは
GridView
はサーバーからの要求です。
のアイテムレイアウトは以下の通りです。
GridView
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/analysis_micon_bg"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/half_activity_vertical_margin"
android:paddingLeft="@dimen/half_activity_horizontal_margin"
android:paddingRight="@dimen/half_activity_horizontal_margin"
android:paddingTop="@dimen/half_activity_vertical_margin" >
<ImageView
android:id="@+id/ranking_prod_pic"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:contentDescription="@string/app_name"
android:scaleType="centerCrop" />
<TextView
android:id="@+id/ranking_rank_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/ranking_prod_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/ranking_prod_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
サーバーにデータをリクエストし、画像のURLを取得して、画像を
Bitmap
public static Bitmap loadBitmapFromInputStream(InputStream is) {
return BitmapFactory.decodeStream(is);
}
public static Bitmap loadBitmapFromHttpUrl(String url) {
try {
return loadBitmapFromInputStream((InputStream) (new URL(url).getContent()));
} catch (Exception e) {
Log.e(TAG, e.getMessage());
return null;
}
}
のコードがあり、そこに
getView(int position, View convertView, ViewGroup parent)
メソッドを作成します。
Bitmap bitmap = BitmapUtil.loadBitmapFromHttpUrl(product.getHttpUrl());
prodImg.setImageBitmap(bitmap);
画像の大きさは
210*210
. 私のNexus 4でアプリケーションを実行しています。画像は
ImageView
の幅が狭くなりますが
ImageView
の高さはスケーリングされません。
ImageView
は画像全体が表示されません。
この問題を解決するにはどうしたらよいですか?
どのように解決するのですか?
カスタムクラスやライブラリを使用しない。
<ImageView
android:id="@id/img"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitCenter" />
scaleType="fitCenter"
(省略時のデフォルト)
- は、親が許す限り幅を広くし、アスペクト比を保ちながら必要に応じて拡大・縮小します。
scaleType="centerInside"
-
の固有幅が小さい場合
src
が親の幅より小さい場合
は、画像を水平方向にセンタリングします -
の固有幅が小さい場合
src
が親の幅より大きい場合
は、親が許す限りの幅にし、アスペクト比を維持したまま縮小します。
を使用しても問題ありません。
android:src
または
ImageView.setImage*
メソッドで、キーはおそらく
adjustViewBounds
.
関連
-
[解決済み】Android: Intent エラーを処理するアクティビティは見つかりませんでしたか?どのように解決するのか
-
[解決済み】android.content.ActivityNotFoundException: 明示的なアクティビティクラスを見つけることができません。
-
[解決済み】IllegalStateException: ViewPager で onSaveInstanceState の後にこのアクションを実行できません。
-
[解決済み] TypeError: cb.apply は関数ではありません。
-
[解決済み] Xlint:deprecationを使用して再コンパイルする方法
-
[解決済み] android.intent.action.MAINの意味は何ですか?
-
[解決済み] Androidで画面の幅と高さを取得する
-
[解決済み] ImageViewの幅と高さをプログラムで設定する?
-
[解決済み】ImageViewでアスペクト比を維持したまま画像を拡大縮小する方法
-
[解決済み] ImageViewに画像をはめ込み、アスペクト比を維持したまま、ImageViewを画像の寸法にリサイズしますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android Studioでパラメータ化されたユニットテストを実行すると、指定されたインクルードに対するテストが見つからないエラーが発生する
-
[解決済み】OnFragmentInteractionListenerを実装する方法
-
[解決済み] ユーザーが拒否する可能性のあるパーミッションが必要なコール
-
[解決済み】Android Studioの初回起動。Android SDKアドオンリストにアクセスできない
-
[解決済み】apkインストール時のINSTALL_FAILED_NO_MATCHING_ABIS
-
[解決済み] [Solved] Error "File google-services.json is missing from module root folder. これがないとGoogle Services Pluginは機能しません" [重複]。
-
[解決済み】Android Studio。adbバージョン」の結果を取得できない
-
[解決済み】カメラサービスへの接続に失敗しました。
-
[解決済み】googleコンソールエラー`OR-IEH-01`について
-
[解決済み] Android: @drawable/picture を drawable に変換するのに失敗しました。