加ProgressBar以及实现延时操作

用GridView实现Gallery的效果再做一个处理,假设图片加载是通过服务器端的,那么在没有加载完毕的时候界面上要有个ProgressBar显示,当加载完毕后,取消ProgressBar。

image

这里是示意性的代码,图片是一上来就加载了,实际情况应该是只看到ProgressBar。这里需要使用FrameLayout,它可以让多个视图重叠在一起。

 

看布局文件:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="200dp"> 
    <TextView android:layout_width="fill_parent" 
        android:layout_height="wrap_content" android:text="最近访问人物" /> 
    <FrameLayout android:layout_width="fill_parent" 
        android:layout_height="match_parent"> 
        <HorizontalScrollView android:layout_width="fill_parent" 
            android:layout_height="160dp"> 
            <FrameLayout android:layout_width="fill_parent" 
                android:layout_height="match_parent"> 
                <LinearLayout android:layout_width="1100dp" 
                    android:layout_height="match_parent" android:orientation="horizontal"> 
                    <FrameLayout android:layout_width="fill_parent" 
                        android:layout_height="match_parent"> 
                        <GridView android:id="@+id/grid" android:layout_width="fill_parent" 
                            android:gravity="center" android:layout_height="fill_parent" 
                            android:horizontalSpacing="1.0dip" android:verticalSpacing="1.0dip" 
                            android:stretchMode="spacingWidthUniform" android:numColumns="auto_fit" 
                            android:columnWidth="80dip"> 
                        </GridView> 
                    </FrameLayout> 
                </LinearLayout> 
            </FrameLayout> 
        </HorizontalScrollView> 
        <ProgressBar android:id="@+id/p1" android:layout_gravity="center" 
            android:layout_width="wrap_content" android:layout_height="wrap_content" /> 
    </FrameLayout> 
</LinearLayout>

 

在代码中调用:

bar.setVisibility(ProgressBar.GONE);

 

即可让ProgressBar在界面中消失。

这里因为是模拟正式环境,做了个延时取消ProgressBar。使用了Android Handler和Message机制。其实自己写个Timer或者线程啥的都可以完成任务。但不是最佳实践。

这是在Activity的onCreate方法中实现的延时关闭ProgressBar的代码片段:

Message message=new Message(); 
message.obj=(ProgressBar) headerView.findViewById(R.id.p1);; 
new Handler(){ 
    public void handleMessage(Message msg) { 
        ProgressBar bar=(ProgressBar) msg.obj; 
        bar.setVisibility(ProgressBar.GONE); 
    } 
}.sendMessageDelayed(message,1000*10);

 

全部源代码:

http://easymorse.googlecode.com/svn/tags/grid.demo-0.2.0/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值