属性动画与图片三级缓存

属性动画

  1. 动画: UI渐变, 变量值的变化
  2. ObjectAnimator : ofInt(“backgroundColor”,start,end);
  3. ValueAnimator:

    1. for(int i = start; i< end; i++) { a = i; }

      ValueAnimator animation=ValueAnimator.ofInt(start,end);
      animation.setDuration(DURATION);
      animation.addUpdateListener(new AnimatorUpdateListener() {
      
      @Override
      public void onAnimationUpdate(ValueAnimator animation)
      {
          int animationValue=(Integer) animation.getAnimatedValue();
          mHeaderlayout.setPadding(0, animationValue, 0, 0);
      }
      

      });
      animation.start();

刷新页面是使用ValueAnimator场景之一,以提高用户体验性。addUpdateListener这个方法不断更新高度,使其渐变收缩。从一开始的start到end。其他地方法就不介绍了,想了解的就去看看源码吧。

ListView页面数据点击已读的设置

实现条目点击的事件,把点击条目的唯一标识符id存储起来,通知listview适配器更新。

    listviewAdapter.notifyDataSetChanged();

在listview适配器中的getView()方法中判断当前position的id是否在存储的数据中(自定义区分的规则),若存在,设置文本字体为灰色,不存在则为黑色。

    //设置已读为灰色
    String itemId="#"+bean.id+"#";
    String readIds=GetDataShared.getString(mContext, KEY_READ_LIST);
    boolean isRead=!TextUtils.isEmpty(readIds)&& readIds.contains(itemId);
    holder.textlist.setTextColor(isRead ? Color.GRAY:Color.BLACK);

页面中webView的使用

    WebView listWeb=(WebView) findViewById(R.id.news_detial_wv);
    //根据url去加载数据
    listWeb.loadUrl(url);

    //设置webview参数
    WebSettings setting=listWeb.getSettings();//获取webview的设置

    //默认为false,不支持javascrip,设置为true可收缩
    setting.setJavaScriptEnabled(true);//设置js可用

    setting.setBuiltInZoomControls(true); //设置放大和缩小可见

    setting.setUseWideViewPort(true);//设置手势双击放大或缩小

改变webview中参数的大小:定义一个方法:mCurrentheckedItem为存储的值(0-4),要想做缓存就把mCurrentheckedItem的值存储起来,在每次初始化的时候先判断存储的值是否存在且不为空。

private void initTextSize()
{
    TextSize ts =null;
    switch(mCurrentheckedItem){
        case 0:
            ts=TextSize.LARGEST;
            break;
        case 1:
            ts=TextSize.LARGER;
            break;
        case 2:
            ts=TextSize.NORMAL;
            break;
        case 3:
            ts=TextSize.SMALLER;
            break;
        case 4:
            ts=TextSize.SMALLEST;
            break;
    }
    listWeb.getSettings().setTextSize(ts);
}

设置监听常用的两个API,第一个无法满足需求就可以使用第二个。

    //设置监听1,进度条的显示切换在这里监听
    listWeb.setWebViewClient(new WebViewClient(){
        @Override
        public void onPageFinished(WebView view, String url)
        {
            //数据加载完成时调用,隐藏进度条
            listPb.setVisibility(View.GONE);
        }
    });

    //监听2,进度条的更新要在这个api里监听
    listWeb.setWebChromeClient(new WebChromeClient(){
        @Override
        public void onProgressChange
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值