ImageViewの幅と高さがJavaコードから設定されている2列のgridViewを作成しようとしているため、携帯電話のサイズが異なっています。どのようにして私のグリッドビューをすべての画面にフィットさせることができますか?ここすべての画面に合わせてAndroid GridViewを作成する
ここに私のImageAdapterとxmlファイルである
import android.content.Context;
import android.content.res.Resources;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ImageAdapter extends BaseAdapter {
private Context CTX ;
private ArrayList<Integer> imageId = new ArrayList<>();
public ImageAdapter (Context ctx){
this.CTX = ctx;
imageId.add(R.drawable.vegetablescata);
imageId.add(R.drawable.fruitscata);
imageId.add(R.drawable.fishcata);
imageId.add(R.drawable.meatcata);
imageId.add(R.drawable.ricecata);
imageId.add(R.drawable.oilcata);
imageId.add(R.drawable.bakerycata);
imageId.add(R.drawable.dairycata);
imageId.add(R.drawable.fastfoodcata);
imageId.add(R.drawable.softdrinkscata);
imageId.add(R.drawable.toiletresecata);
imageId.add(R.drawable.medecincata);
}
@Override
public int getCount() {
return imageId.size();
}
@Override
public Object getItem(int position) {
String n = CTX.getResources().getResourceEntryName(imageId.get(position));
return n;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView img;
if(convertView == null){
img = new ImageView(CTX);
img.setLayoutParams(new GridView.LayoutParams(360, 360));
img.setScaleType(ImageView.ScaleType.CENTER_CROP);
img.setPadding(8,8,8,8);
}else{
img = (ImageView) convertView;
}
img.setImageResource(imageId.get(position));
return img;
}
}
は私のxmlファイルである
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.app.reza.test.testCategoriesFragment">
<!-- TODO: Update blank fragment layout -->
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="90dp"
android:numColumns="2"
android:verticalSpacing="2dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:layout_gravity="center">
</GridView>
これはスクリーンショットですが、私はすべての電話サイズのthsiスクリーンショットと同じで欲しいです。
スクロールビューにグリッドビューを配置します。 – Champandorid
??この行はどうですか? img.setLayoutParams(新しいGridView.LayoutParams(360、360)); –