美文网首页
运行日志篇

运行日志篇

作者: erki_stwee | 来源:发表于2018-08-01 20:55 被阅读21次
    omg.png

    最近这两周都在忙于公司安排的任务。今天刚好结束了任务,再次对这期间遇到的问题简单的做一个汇总(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

    Fresco加载长图Crash

    http://www.10tiao.com/html/169/201608/2650820929/1.html

    相关文章

      网友评论

          本文标题:运行日志篇

          本文链接:https://www.haomeiwen.com/subject/nitdvftx.html