200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Android(安卓)高仿微信朋友圈九宫格列表

Android(安卓)高仿微信朋友圈九宫格列表

时间:2021-12-05 14:24:57

相关推荐

Android(安卓)高仿微信朋友圈九宫格列表

目前基本复现微信的朋友圈的浏览效果

直接上效果图吧!

感觉不错的话多多支持吧

由于代码比较多,目前只将核心的适配器代码放出来,如果需要全部的话,下载源码吧,源码地址在最后

适配器代码:

private static List<GridListBean> listBeans = new LinkedList<>();public int resource;public GridListAdapter(@NonNull Context context, int source, @NonNull List<GridListBean> objects) {super(context, source, objects);listBeans = objects;resource = source;}public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {GridListBean gridListBean = getItem(position);@SuppressLint("ViewHolder") View view = LayoutInflater.from(getContext()).inflate(resource, parent, false); TextView title = view.findViewById(R.id.title);title.setText(gridListBean.getTitle());TextView content = view.findViewById(R.id.content);content.setText(gridListBean.getContent());TextView time = view.findViewById(R.id.time);time.setText(gridListBean.getTime());ImageView avatar = view.findViewById(R.id.avatar);ImageView img_one = view.findViewById(R.id.img_one);ImageView img_two = view.findViewById(R.id.img_two);ImageView img_three = view.findViewById(R.id.img_three);ImageView img_four = view.findViewById(R.id.img_four);ImageView img_five = view.findViewById(R.id.img_five);ImageView img_six = view.findViewById(R.id.img_six);ImageView img_seven = view.findViewById(R.id.img_seven);ImageView img_eight = view.findViewById(R.id.img_eight);ImageView img_nine = view.findViewById(R.id.img_nine);try {BitmapDrawable[] drawable = SourceHolder.getInstance().getSource(getItem(position).getImgUrl()[0]);ImageView[] imageViews = new ImageView[]{avatar, img_one, img_two, img_three, img_four, img_five, img_six, img_seven, img_eight, img_nine};if (drawable != null) {GridNumListener.setVisible(imageViews, drawable);} else {BitmapWorkerTask task = new BitmapWorkerTask(imageViews);task.execute(getItem(position).getImgUrl());}} catch (Exception e) {Log.d(String.valueOf(this), "加载图片异常..." + e.getMessage());}return view;}@SuppressLint("StaticFieldLeak")public class BitmapWorkerTask extends AsyncTask<String, Void, BitmapDrawable> {private final ImageView[] imageViews;String[] imageUrl = null;private BitmapWorkerTask(ImageView[] imageViews) {this.imageViews = imageViews;}protected BitmapDrawable doInBackground(String... params) {try {imageUrl = params;//获取当前图片的地址BitmapDrawable[] bitmapDrawable1 = new BitmapDrawable[10];for (int i = 0; i < imageUrl.length; i++) {Bitmap bitmap = downloadBitmap(imageUrl[i]);bitmapDrawable1[i] = new BitmapDrawable(getContext().getResources(), bitmap);}SourceHolder.getInstance().setSource(imageUrl[0], bitmapDrawable1);return bitmapDrawable1[0];} catch (Exception e) {return null;}}protected void onPostExecute(BitmapDrawable result) {super.onPostExecute(result);try {if (imageViews != null && result != null) {BitmapDrawable[] bitmapDrawables = SourceHolder.getInstance().getSource(imageUrl[0]);GridNumListener.setVisible(imageViews, bitmapDrawables);}} catch (Exception e) {e.printStackTrace();}}}public Bitmap downloadBitmap(String imageUrl) {Bitmap bitmap = null;HttpURLConnection connection = null;try {URL url = new URL(imageUrl);connection = (HttpURLConnection) url.openConnection();connection.setConnectTimeout(5000);connection.setReadTimeout(3000);bitmap = BitmapFactory.decodeStream(connection.getInputStream());} catch (Exception e) {e.printStackTrace();} finally {if (connection != null) {connection.disconnect();}}return bitmap;}

下载地址:点我下载

目前Gitee开源未审核过,还不能开源,后面记起来了的话再开源吧

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。