ImageView を含む recyclerview があります。ただし、各画像の下部には余分なスペースがあります。余分なスペースは、スクリーンショットでわかるように赤い背景です。すべての画像を並べて表示したいと思います。
レイアウト マネージャーを定義するアクティビティのコードは次のとおりです。
fun setupRecyclerView(recyclerView: RecyclerView) {
val adapter = PictureAdapter()
recyclerView.adapter = adapter
recyclerView.layoutManager = StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)
}
recyclerview のアイテムの xml ファイルは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/tools">
<data>
<variable
name="viewModel"
type="com.my.app.viewModel.PictureViewModel" />
</data>
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="280dp"
app:imageUrl="@{viewModel.imageUrl}"
android:background="#ff0000"
android:adjustViewBounds="true"
android:scaleType="fitStart" />
</layout>
そして、これで画像をロードしています
@BindingAdapter({"bind:imageUrl"})
public static void loadImage(final ImageView view, String imageUrl) {
Picasso.with(view.getContext())
.load(imageUrl)
.into(view);
}
余分なスペースを削除するために、ImageView の高さを自動的にサイズ変更するにはどうすればよいですか? 画像をトリミングしたくありません。そしてwrap_content
、ImageView を配置するとlayout_height
、アプリケーションが遅くなり、スクロールがスムーズにならず、多くのエラーが発生します
アプリケーションがメイン スレッドで処理しすぎている可能性があります。