注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

断弦的博客

做有理想的程序猿

 
 
 

日志

 
 
 
 

跑马灯TextView以及ProgressBar使用  

2013-01-17 10:45:50|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
TextView实现文字滚动需要以下几个要点:
1.文字长度长于可显示范围:android:singleLine="true"
2.设置可滚到,或显示样式:android:ellipsize="marquee"
3.TextView只有在获取焦点后才会滚动显示隐藏文字,因此需要在包中新建一个类,继承TextView。重写isFocused方法,这个方法默认行为是,如果TextView获得焦点,方法返回true,失去焦点则返回false。跑马灯效果估计也是用这个方法判断是否获得焦点,所以把它的返回值始终设置为true。

public class AlwaysMarqueeTextView extends TextView {

public AlwaysMarqueeTextView(Context context{
super(context);
}

public AlwaysMarqueeTextView(Context context, AttributeSet attrs{
super(context, attrs);
}

public AlwaysMarqueeTextView(Context context, AttributeSet attrs, int defStyle{
super(context, attrs, defStyle);
}

@Override
public boolean isFocused() {
return true;
}

ProgressBar的使用就是在onProgressChanged中对ProgressBar进行更新,当到达100时让ProgressBar运行Alpha值渐变动画并消失。


webview.setWebChromeClient(new WebChromeClient() {
private ProgressBar pb;
private TextView tvtitle;
Animation animation;

public void onProgressChanged(WebView view, int progress) {
pb = (ProgressBar) mselfActivity.findViewById(R.id.pb);
pb.setMax(100);
if (progress < 100) {
if(pb.getVisibility()==View.GONE||pb.getVisibility()==View.INVISIBLE)
pb.setVisibility(View.VISIBLE);
pb.setProgress(progress);
} else {
pb.setProgress(100);
animation = AnimationUtils.loadAnimation(mselfActivity,
R.anim.animation);
pb.startAnimation(animation);
pb.setVisibility(View.INVISIBLE);
}
super.onProgressChanged(view, progress);
}

public void onReceivedTitle(WebView view, String title) {
tvtitle = (TextView) mselfActivity.findViewById(R.id.tvtitle);
tvtitle.setText(title);
super.onReceivedTitle(view, title);
}
});

broser_custom_title.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >



<android.kjw.webview.AlwaysMarqueeTextView
android:id="@+id/tvtitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:ellipsize="marquee"
android:focusable="false"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:textSize="20sp" />

<ProgressBar
android:id="@+id/pb"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:visibility="gone" >
</ProgressBar>

</RelativeLayout>

/res/anim/animation.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="700" />
</set>


  评论这张
 
阅读(74)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018