使用google第三方库后,gridview无法显示,无报错
package com.example.gridview;
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.widget.GridView;
import android.widget.TextView;
import com.example.gridview.adapter.GridAdapter4;
import com.example.gridview.model.ImageInfo;
import java.util.ArrayList;
import java.util.List;
/*
* 功能实现:使用GridView显示从网络下载的图片
* 1)新建类ImagInfo,包含图片下载地址imagePath、图片bitmap
* 2)新建适配器类GridAdapter4,包含ImagInfo类型的List对象imageInfoList
* 3)调入资源库, 使用google官方库访问网络并下载
* 4)把下载地址赋给imageInfoList (initData()函数)
* 5)GridView绑定适配器(以imageInfoList为参数)
*
* */
public class ExampleActivity4 extends Activity{
private GridView gridView;
private TextView textView;
private List<String> imgPathList;
private List<ImageInfo> imageInfoList;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.example_activity4);
initView();
initData();
}
private void initData() {
imgPathList=new ArrayList<String>();
imgPathList.add("https://b-ssl.duitang.com/uploads/item/201701/29/20170129014507_NaLix.jpeg");
imgPathList.add("http://img2.imgtn.bdimg.com/it/u=3980629563,3881837630&fm=21&gp=0.jpg");
imgPathList.add("http://img5q.duitang.com/uploads/item/201505/08/20150508155052_XJaNW.jpeg");
imgPathList.add("http://img4.duitang.com/uploads/item/201407/02/20140702105736_FdN5P.jpeg");
imgPathList.add("http://img2.imgtn.bdimg.com/it/u=2866652161,3841912673&fm=21&gp=0.jpg");
imgPathList.add("http://img4.imgtn.bdimg.com/it/u=883757693,2063816225&fm=21&gp=0.jpg");
imgPathList.add("https://b-ssl.duitang.com/uploads/item/201607/21/20160721205624_B53r2.jpeg");
imgPathList.add("http://zjimg.5054399.com/allimg/160815/14_160815161625_9.jpg");
imgPathList.add("http://i-7.vcimg.com/trim/09ce7067d2467c54cf05bbd271ee3ec8430415/trim.jpg");
imageInfoList=new ArrayList<ImageInfo>();
int i;
for(i=0;i<imgPathList.size();i++)
{
ImageInfo imageInfo=new ImageInfo();
// 把imagePathLis的地址传给imageInfo
imageInfo.setImagePath(imgPathList.get(i));
imageInfo.setText("第"+(i+1)+"张图");
imageInfoList.add(imageInfo);
}
textView.setText("共有"+i+"张图");
// 建立适配器对象,imageInforList入参
GridAdapter4 gridAdapter4=new GridAdapter4(this,imageInfoList);
gridView.setAdapter(gridAdapter4);
}
private void initView() {
gridView=findViewById(R.id.gridview4);
textView=findViewById(R.id.tv_picgridview4);
}
}
package com.example.gridview.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.gridview.R;
import com.example.gridview.model.ImageInfo;
import java.util.List;
public class GridAdapter4 extends BaseAdapter {
private Context context;
private List<ImageInfo> imageInfoList;
// private List<AppInfo>appInfoList;
public GridAdapter4(Context context, List<ImageInfo> imageInfoList) {
this.context = context;
this.imageInfoList = imageInfoList;
}
@Override
public int getCount() {
return imageInfoList.size();
}
@Override
public Object getItem(int position) {
return imageInfoList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if(convertView==null){
// 绑定item_gridview2给当前convertView
convertView=View.inflate(context, R.layout.item_gridview3,null);
// 适配器viewHolder绑定convertView相应的view
viewHolder=new ViewHolder();
viewHolder.imageView=convertView.findViewById(R.id.iv_img);
viewHolder.textView=convertView.findViewById(R.id.tv_picName);
convertView.setTag(viewHolder);
}else {
viewHolder= (ViewHolder) convertView.getTag();
}
ImageInfo imageInfo=imageInfoList.get(position);
viewHolder.textView.setText(imageInfo.getText());
// 使用google资源库下载网络图片并指定给viewholder,若不成功使用ic_launcher
Glide.with(context).load(imageInfo.getImagePath()).into(viewHolder.imageView);
// 根据实际情况加载图片,若imageInfo无下载图片,则使用系统图标ic_launcher
// if(imageInfo.getBitmap()==null){
// viewHolder.imageView.setImageResource(R.mipmap.ic_launcher);
// }else
// viewHolder.imageView.setImageBitmap(imageInfo.getBitmap());
return convertView;
}
public class ViewHolder{
ImageView imageView;
TextView textView;
}
}
正在回答
你的布局文件中,GridView有没有使用stretchMode属性?
主页中,有链接到ExampleActivity4.class,为什么点击无反应。在Manifest.xml中已加载ExampleActivity4。gralde文件中已添加 implementation 'com.github.bumptech.glide:glide:4.8.0' ,整个运行没有报错。
- 参与学习 人
- 提交作业 307 份
- 解答问题 1613 个
本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星