android實現界面滑動,Android 上千張圖片的列表滑動加載

 2023-11-19 阅读 26 评论 0

摘要:一般項目中圖片加載用的比較多的是ImageLoader 但是需求自己配置一些參數 上手有些復雜 對于手機圖庫中有上千張圖片需要加載時 一個使用性能很好的庫Glide可以解決 效果圖如下 滑動非常流暢 加載速度也很快 而且使用也非常簡單 個人感覺比手機自帶的圖庫效果更佳 android實現

一般項目中圖片加載用的比較多的是ImageLoader 但是需求自己配置一些參數 上手有些復雜

對于手機圖庫中有上千張圖片需要加載時 一個使用性能很好的庫Glide可以解決 效果圖如下

滑動非常流暢 加載速度也很快 而且使用也非常簡單 個人感覺比手機自帶的圖庫效果更佳

android實現界面滑動?上圖上代碼

Code

public class MainActivity extends Activity {ArrayList<String> fileNames = new ArrayList<String>(); //本地圖片路徑
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initData();GridView listView = (GridView) findViewById(R.id.gridview);//ImageAdapter imageAdapter = new ImageAdapter(getApplicationContext(),Images.imageUrls);ImageAdapter imageAdapter = new ImageAdapter(getApplicationContext(), fileNames);listView.setAdapter(imageAdapter);}private void initData() {fileNames.clear();Cursor cursor = getContentResolver().query(Media.EXTERNAL_CONTENT_URI, null, null, null, null);while (cursor.moveToNext()) {byte[] data = cursor.getBlob(cursor.getColumnIndex(Media.DATA)); //圖片的保存位置的數據fileNames.add(new String(data, 0, data.length - 1));}}}

activity_main

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.imagelist.MainActivity" ><GridViewandroid:id="@+id/gridview"android:layout_width="match_parent"android:layout_height="wrap_content"android:numColumns="3" android:horizontalSpacing="2dp"android:verticalSpacing="2dp"></GridView></RelativeLayout>

Android登錄加載用戶頭像。ImageAdapter

public class ImageAdapter extends BaseAdapter {private Context context;private String[] imageUrls;ArrayList<String> fileNames;private LinearLayout.LayoutParams mImageViewLayoutParams;/** public ImageAdapter(Context context, String[] imageUrls) { super();* this.context = context; this.imageUrls = imageUrls; }*/public ImageAdapter(Context context, ArrayList<String> fileNames) {super();this.context = context;this.fileNames = fileNames;DisplayMetrics dm = context.getResources().getDisplayMetrics();  int wh = dm.widthPixels;int w = (wh - context.getResources().getDimensionPixelSize(R.dimen.test) * 2) / 3;mImageViewLayoutParams = new LinearLayout.LayoutParams(w, w);}@Overridepublic int getCount() {return fileNames.size();}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {View view;if (convertView == null) {view = LayoutInflater.from(context).inflate(R.layout.item, null);} else {view = convertView;}ImageView image = (ImageView) view.findViewById(R.id.image);image.setLayoutParams(mImageViewLayoutParams);Glide.with(context).load(fileNames.get(position)).centerCrop().placeholder(R.color.test).crossFade().into(image);return view;}
}

item

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><ImageView android:id="@+id/image"android:layout_width="wrap_content"android:layout_height="wrap_content"android:scaleType="centerCrop"/></LinearLayout>

Demo見github

https://github.com/huanyi0723/ImageList

android 展開收起列表。轉載于:https://www.cnblogs.com/huanyi0723/p/4816393.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/180762.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息