最近这两周都在忙于公司安排的任务。今天刚好结束了任务,再次对这期间遇到的问题简单的做一个汇总(MD的一个他们口中说简单的功能我写了5000+的代码量,确实简单T_T)。
问题汇总
1.ListView and RecyclerVIew复用的问题
2.Fresco图片加载闪烁
3.如何绘制一个伪表格样式
4.ScrollView制作长图
5.PDF导出以及加载
6.Fresco加载长图Crash
关于ListView复用的问题
https://blog.csdn.net/qq_33078541/article/details/50600660
http://www.trinea.cn/android/android-listview-display-error-image-when-scroll/
https://www.jianshu.com/p/bdf1b5d6be82
https://blog.csdn.net/nihaoqiulinhe/article/details/51012319(采用的文章)
这是我查询到的关于处理ListView或者RecyclerView复用比较好的文章。
这里我简单的描述一下。通过使用一个 Map集合来存储位置和你想要保存的数据。以EditText为例
viewHolder.etAreaOne.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
//在此将数据保存起来
}
});
在为该位置添加值的时候先判断Map中是否包含该位置。
Fresco图片闪烁的问题
Fresco的使用
https://blog.csdn.net/mockingbirds/article/details/50658846
本质上也是数据复用的问题,这里我将我处理Fresco的代码粘贴出来方便以后使用
/**
* 解决网络图片闪烁问题
* @param uri
* @return
*/
private void returnBitmap(Uri uri, final int position) {
ImageRequestBuilder requestBuilder = ImageRequestBuilder.newBuilderWithSource(uri);
ImageRequest imageRequest = requestBuilder.build();
DataSource<CloseableReference<CloseableImage>> dataSource = ImagePipelineFactory.getInstance().getImagePipeline().fetchDecodedImage(imageRequest, null);
dataSource.subscribe(new BaseBitmapDataSubscriber() {
@Override
protected void onNewResultImpl(Bitmap bitmap) {
imgMap.put(position,bitmap);
}
@Override
protected void onFailureImpl(DataSource<CloseableReference<CloseableImage>> dataSource) {
}
}, UiThreadImmediateExecutorService.getInstance());
}
如何绘制一个伪表格样式
Android如何绘制Excel表数据
(RecyclerView绘制表格)
https://blog.csdn.net/lixiang_Y/article/details/73179534
(项目季节底)
http://www.wanandroid.com/project/list/1?cid=314
(自定义表格控件 - TableView/TableLayout)
https://www.jianshu.com/p/251cd77fbb60
(Android 表格控件-动态实现表格效果(内容、样式可扩展))
https://blog.csdn.net/daijin888888/article/details/50159579
android 表格控件
https://blog.csdn.net/cugkuan/article/details/9837463
总有一款能解决你的问题。在这里我采用了(Android 表格控件-动态实现表格效果(内容、样式可扩展))。
通过addView的方式绘制一个伪表格的样式。这里没什么难度。但是绘制表格的时候一定要细心。别被自己给坑到了(O(∩_∩)O)
ScrollView制作长图
https://www.jianshu.com/p/f6f35c320f37(参考我这边文章就行了)
PDF导出以及加载
这个控件能很好的满足你的需求。如果生成的PDF是一个比较复杂的页面的话。我建议采用导入一个PDF模板的方式来处理。毕竟纯手绘一个PDF是一个痛苦跟无聊的过程。
https://github.com/JoanZapata/android-pdfview
网友评论