我正在一个看起来像这样的库上制作一个 android 应用程序
我需要动态放置所有这些书,并且在单击一本书后都应该可以单独点击,它将通过默认的 pdf 阅读器打开。
我的问题是使用列表视图是否有可能,如果没有,那么什么是合适的方法。请给我看一些我找不到的例子。
我正在一个看起来像这样的库上制作一个 android 应用程序
我需要动态放置所有这些书,并且在单击一本书后都应该可以单独点击,它将通过默认的 pdf 阅读器打开。
我的问题是使用列表视图是否有可能,如果没有,那么什么是合适的方法。请给我看一些我找不到的例子。
http://code.google.com/p/shelves/。Romain GUy 的一个项目。值得一看的项目。
http://code.google.com/p/shelves/source/browse/trunk/Shelves/src。 http://shelves.googlecode.com/svn/trunk/Shelves/。它是只读的。打开后备箱并复制代码并使用相同的代码。
使用网格视图。 http://developer.android.com/guide/topics/ui/layout/gridview.html
通用图像加载器。
https://github.com/nostra13/Android-Universal-Image-Loader。
它基于惰性列表(工作原理相同)。但它还有很多其他配置。我更喜欢使用 Universal Image Loader,因为它为您提供了更多配置选项。如果下载失败,您可以显示错误图像。可以显示带圆角的图像。可以缓存在磁盘或内存上。可以压缩图像。
在您的自定义适配器构造函数中
File cacheDir = StorageUtils.getOwnCacheDirectory(a, "your folder");
// Get singletone instance of ImageLoader
imageLoader = ImageLoader.getInstance();
// Create configuration for ImageLoader (all options are optional)
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(a)
// You can pass your own memory cache implementation
.discCache(new UnlimitedDiscCache(cacheDir)) // You can pass your own disc cache implementation
.discCacheFileNameGenerator(new HashCodeFileNameGenerator())
.enableLogging()
.build();
// Initialize ImageLoader with created configuration. Do it once.
imageLoader.init(config);
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.stub_id)//display stub image
.cacheInMemory()
.cacheOnDisc()
.displayer(new RoundedBitmapDisplayer(20))
.build();
在你的 getView()
ImageView image=(ImageView)vi.findViewById(R.id.imageview);
imageLoader.displayImage(imageurl, image,options);//provide imageurl, imageview and options.
您可以配置其他选项以满足您的需求。
与延迟加载/通用图像加载器一起,您可以查看持有者以实现平滑滚动和性能。http://developer.android.com/training/improving-layouts/smooth-scrolling.html。
编辑:
https://github.com/androidnerds/shelves。以 zip 格式下载的链接。