java我想将gridview更改为recyclerview
我是安卓的新手。
我一边学习一边看开源,但我对RecyclerView
还是没有很好的理解。
我试过了,但最后一整天都找不到想要的结果。
我想将GridView
更改为RecyclerView
,但我需要帮助
public class MainActivity extends AppCompatActivity {
GridView gridView;
List<Bitmap> list_image = new ArrayList<Bitmap>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String url = "https://www.pinterest.co.kr/offsong/wallpaper_black/";
try {
getListImageFromWeb(url);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
protected void getListImageFromWeb(String url) throws InterruptedException {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
Document document = (Document) Jsoup.connect(url).get();
Elements images = document.select("img");
System.out.println("image size:" + images.size());
for (Element image : images){
Bitmap bmget = getBitmapFromSrc(image.attr("src"));
if (bmget != null){
list_image.add(bmget);
}
}
System.out.println("gengerate list image complete");
} catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();
thread.join();
ShowImage();
}
protected Bitmap getBitmapFromSrc(String src){
try {
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream inputStream = connection.getInputStream();
Bitmap mybitmap = BitmapFactory.decodeStream(inputStream);
return mybitmap;
} catch (MalformedURLException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
// this function show some images in to screen
protected void ShowImage(){
gridView = findViewById(R.id.gridView);
CustomAdapter customAdapter = new CustomAdapter();
gridView.setAdapter(customAdapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(getApplicationContext(), ImageDetail.class);
intent.putExtra("image", list_image.get(i));
startActivity(intent);
}
});
}
private class CustomAdapter extends BaseAdapter {
@Override
public int getCount() {
return list_image.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View view1 = getLayoutInflater().inflate(R.layout.image_view, null);
ImageView image = view1.findViewById(R.id.image_view);
image.setImageBitmap(list_image.get(i));
return view1;
}
}
}
提前谢谢! 你会对我有很大帮助的
# 1 楼答案
这是一个非常基本的示例,您可以尝试: