Android 如何创建自定义GridView

Android 如何创建自定义GridView,android,gridview,android-volley,baseadapter,Android,Gridview,Android Volley,Baseadapter,我一直在尝试定制gridview,以便可以操纵单个网格的外观,但我没有成功 我能够创建一个gridview,它可以通过截击获得图像和文本。及 我一直在尝试操纵适配器类并搜索教程,但不幸的是没有运气 你们能不能帮我说说我怎么做,我做错了什么?提前谢谢 这是我的适配器类GridViewAdaper: public class GridViewAdapter extends BaseAdapter { private ImageLoader imageLoader; privat

我一直在尝试定制gridview,以便可以操纵单个网格的外观,但我没有成功

我能够创建一个gridview,它可以通过截击获得图像和文本。及 我一直在尝试操纵适配器类并搜索教程,但不幸的是没有运气

你们能不能帮我说说我怎么做,我做错了什么?提前谢谢

这是我的适配器类
GridViewAdaper

public class GridViewAdapter extends BaseAdapter {

    private ImageLoader imageLoader;


    private Context context;

     private ArrayList<String> images;
    private ArrayList<String> names;

    public GridViewAdapter (Context context, ArrayList<String> images, ArrayList<String> names){
        this.context = context;
        this.images = images;
        this.names = names;
    }

    @Override
    public int getCount() {
        return images.size();
    }

    @Override
    public Object getItem(int position) {
        return images.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        LayoutInflater inflater= (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView=inflater.inflate(R.layout.list_item, null);

        TextView name=(TextView)convertView.findViewById(R.id.textViewName);
        ImageView icon=(NetworkImageView)convertView.findViewById(R.id.imageViewHero);

        imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader();
        imageLoader.get(images.get(position), ImageLoader.getImageListener(icon, R.mipmap.ic_launcher, android.R.drawable.ic_dialog_alert));

        icon.setImageResource(images.get(position),imageLoader);

        name.setText(names.get(position));

       icon.setScaleType(ImageView.ScaleType.CENTER_CROP);
        icon.setLayoutParams(new GridView.LayoutParams(200,200));

        return convertView;
    }
}
公共类GridViewAdapter扩展了BaseAdapter{
私有图像加载器;
私人语境;
私有数组列表图像;
私有数组列表名称;
公共GridViewAdapter(上下文上下文、ArrayList图像、ArrayList名称){
this.context=上下文;
这个。图像=图像;
this.names=名称;
}
@凌驾
public int getCount(){
返回图像。size();
}
@凌驾
公共对象getItem(int位置){
返回图像。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
convertView=充气机。充气(R.layout.list_项,空);
TextView name=(TextView)convertView.findViewById(R.id.textViewName);
ImageView图标=(NetworkImageView)convertView.findViewById(R.id.imageViewHero);
imageLoader=CustomVolleyRequest.getInstance(上下文).getImageLoader();
imageLoader.get(images.get(位置),imageLoader.getImageListener(图标,R.mipmap.ic_启动器,android.R.drawable.ic_对话框_警报));
icon.setImageResource(images.get(位置),imageLoader);
name.setText(name.get(position));
icon.setScaleType(ImageView.ScaleType.CENTER\U裁剪);
icon.setLayoutParams(新的GridView.LayoutParams(200200));
返回视图;
}
}

我已经解决了这个问题:D

适配器类:

public class GridViewAdapter extends BaseAdapter {

private ImageLoader imageLoader;

private Context context;

private ArrayList<String> images;
private ArrayList<String> names;

 public GridViewAdapter (Context context,ArrayList<String> images, 
 ArrayList<String> names){
    this.context = context;
    this.images = images;
    this.names = names;
}

@Override
public int getCount() {
    return images.size();
}

@Override
public Object getItem(int position) {
    return images.get(position);
}

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View grid;
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    grid = inflater.inflate(R.layout.list_item, null);

    TextView title = (TextView) grid.findViewById(R.id.textViewName);
    NetworkImageView thumbNail = (NetworkImageView) grid.findViewById(R.id.imageViewHero);

    imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader();
    imageLoader.get(images.get(position), ImageLoader.getImageListener(thumbNail, R.mipmap.ic_launcher, android.R.drawable.ic_dialog_alert));

    title.setText(names.get(position));
    thumbNail.setImageUrl(images.get(position), imageLoader);


    return grid;
}
}
公共类GridViewAdapter扩展了BaseAdapter{
私有图像加载器;
私人语境;
私有数组列表图像;
私有数组列表名称;
公共GridViewAdapter(上下文、ArrayList图像、,
数组列表名称){
this.context=上下文;
这个。图像=图像;
this.names=名称;
}
@凌驾
public int getCount(){
返回图像。size();
}
@凌驾
公共对象getItem(int位置){
返回图像。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图网格;
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
网格=充气机。充气(R.layout.list_项,空);
TextView title=(TextView)grid.findViewById(R.id.textViewName);
NetworkImageView缩略图=(NetworkImageView)grid.findViewById(R.id.imageViewHero);
imageLoader=CustomVolleyRequest.getInstance(上下文).getImageLoader();
imageLoader.get(images.get(位置),imageLoader.getImageListener(缩略图,R.mipmap.ic_启动器,android.R.drawable.ic_对话框_警报));
title.setText(name.get(position));
setImageUrl(images.get(position),imageLoader);
返回网格;
}
}