属性动画
- 动画: UI渐变, 变量值的变化
- ObjectAnimator : ofInt(“backgroundColor”,start,end);
ValueAnimator:
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