自定义对话框与 imageview 到 gridview
Custom dialog with imageview into gridview
我有一个自定义对话框,我想显示 10 个图标。
我有这个代码
private void showAlertDialog() {
GridView gridView = new GridView(this);
List<Integer> mList = new ArrayList<Integer>();
ArrayList<Integer> myImageList = new ArrayList<>();
for (int i = 1; i < 10; i++) {
mList.add(i);
}
gridView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, mList));
gridView.setNumColumns(3);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// do something here
}
});
// Set grid view to alertDialog
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(gridView);
builder.setTitle("Select icon");
builder.show();
}
如何制作图标数组?此刻我只能看到 1,2,3,4,5....
有谁可以帮助我吗?
谢谢
创建自定义 ArrayAdapter
。
public class ImageAdapter extends ArrayAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
// if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// references to our images
private Integer[] mThumbIds = {
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
};
}
替换 mThumbIds
您的图标 ID 中的 ID。之后,将适配器设置为 GridView
:
gridview.setAdapter(new ImageAdapter(this));
调整图标大小:
//Width and height in pixels
int width = 150;
int height = 150;
imageView.setLayoutParams(new GridView.LayoutParams(width, height));
您需要为 Gridview 创建一个视图适配器,然后使用它设置您的图像。你可以用这个作为参考
link
我有一个自定义对话框,我想显示 10 个图标。 我有这个代码
private void showAlertDialog() {
GridView gridView = new GridView(this);
List<Integer> mList = new ArrayList<Integer>();
ArrayList<Integer> myImageList = new ArrayList<>();
for (int i = 1; i < 10; i++) {
mList.add(i);
}
gridView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, mList));
gridView.setNumColumns(3);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// do something here
}
});
// Set grid view to alertDialog
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(gridView);
builder.setTitle("Select icon");
builder.show();
}
如何制作图标数组?此刻我只能看到 1,2,3,4,5.... 有谁可以帮助我吗? 谢谢
创建自定义 ArrayAdapter
。
public class ImageAdapter extends ArrayAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
// if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// references to our images
private Integer[] mThumbIds = {
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
};
}
替换 mThumbIds
您的图标 ID 中的 ID。之后,将适配器设置为 GridView
:
gridview.setAdapter(new ImageAdapter(this));
调整图标大小:
//Width and height in pixels
int width = 150;
int height = 150;
imageView.setLayoutParams(new GridView.LayoutParams(width, height));
您需要为 Gridview 创建一个视图适配器,然后使用它设置您的图像。你可以用这个作为参考 link