私はピカソを使用して、2 ImageView
を横に並べてGridView
の2列を表示しています。 画像を伸ばすことなく、ImageView
の高さを動的に設定する方法が見つからないことがあります。ここピカソでImageViewの高さを動的に設定する方法は?
コードである:
listview_item_image.xmlImageListAdapter.java
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// ViewHolder pattern in play
ViewHolder viewHolder;
if (null == convertView) {
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.listview_item_image, parent, false);
viewHolder.mImageView = (ImageView) convertView.findViewById(R.id.iv_button);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
Picasso
.with(context)
.load(imageResources[position])
.fit()
.centerInside()
.into(viewHolder.mImageView);
return convertView;
}
activity_picasso.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/heenok_grid_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numColumns="2"
android:layout_marginBottom="50dp"/>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <ImageView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/iv_button" android:layout_width="match_parent" android:layout_height="121dp" android:background="@null" android:foreground="?attr/selectableItemBackgroundBorderless" />
私は私のAdapter
に.fit.centerInside()
ずにしようとした私のImageView
でandroid:layout_height="wrap_content"
を追加しました。それは動作しますが、画像の数が多いため、私はの巨大なを経験しています。私の画像は乱れていて、アプリはちょうどクラッシュします。
私は.fit.centerInside()
を削除せずに私のandroid:layout_height=""
wrap_content
にを変更すると、画面はちょうど空白になって何の画像がありませんでしたかのように誰もが答えを得た
たら...、私は喜んでいると思います!
まずで、あなたがアンドロイドを指定した場合:scaleType = ImageViewの "fitXY"は、ImageViewの画像と同じ比率でなければ歪んでしまいます。あなたが達成したい効果に応じて、異なるスケールタイプを選択してください。 .fit.centerInside()は、別のscaleTypeを使用している場合はそれを削除するだけで役に立ちません。また、RecyclerViewを使用して、少ないものを使用するようにしてください...もっともっと少ない...メモリを使用しないと、あまりにも多くの画像でメモリクラッシュに直面します。 – DustyMan