A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴光新 黑马帝   /  2013-8-13 00:37  /  4097 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、可下拉控件类

  1. <P>package com.common;


  2. import java.util.Calendar;

  3. import com.adv.R;

  4. import android.content.Context;
  5. import android.util.AttributeSet;
  6. import android.util.Log;
  7. import android.view.Gravity;
  8. import android.view.LayoutInflater;
  9. import android.view.MotionEvent;
  10. import android.view.View;
  11. import android.widget.ImageView;
  12. import android.widget.LinearLayout;
  13. import android.widget.ListView;
  14. import android.widget.ProgressBar;
  15. import android.widget.ScrollView;
  16. import android.widget.Scroller;
  17. import android.widget.TextView;
  18. import android.widget.LinearLayout.LayoutParams;


  19. /**
  20. * 刷新控制view
  21. *
  22. * @author Nono
  23. *
  24. */
  25. public class RefreshableView extends LinearLayout {

  26.     private static final String TAG = "LILITH";
  27.     private Scroller scroller;
  28.     private View refreshView;
  29.     private ImageView refreshIndicatorView;
  30.     private int refreshTargetTop = -60;
  31.     private ProgressBar bar;
  32.     private TextView downTextView;
  33.     private TextView timeTextView;
  34.     private LinearLayout reFreshTimeLayout;//显示上次刷新时间的layout
  35.     private RefreshListener refreshListener;

  36.     private String downTextString;
  37.     private String releaseTextString;

  38. //   private Long refreshTime = null;
  39.     private int lastX;
  40.     private int lastY;
  41.     // 拉动标记
  42.     private boolean isDragging = false;
  43.     // 是否可刷新标记
  44.     private boolean isRefreshEnabled = true;
  45.     // 在刷新中标记
  46.     private boolean isRefreshing = false;
  47.     Calendar LastRefreshTime;
  48.    
  49.     private Context mContext;
  50.     public RefreshableView(Context context) {
  51.         super(context);
  52.         mContext = context;
  53.         
  54.     }
  55.     public RefreshableView(Context context, AttributeSet attrs) {
  56.         super(context, attrs);
  57.         mContext = context;
  58.         init();
  59.         
  60.     }
  61. //  ........................
  62. </P>
  63. <P>//代码太多,请从文件里获取</P>
复制代码
2、刷新界面代码
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- android:layout_marginTop="-50.0dip"隐藏 -->
  3. <LinearLayout android:orientation="vertical"
  4.         android:layout_width="fill_parent" android:layout_height="50.0dip"
  5.         android:layout_marginTop="-50.0dip" xmlns:android="http://schemas.android.com/apk/res/android">

  6.         <RelativeLayout
  7.             android:layout_width="fill_parent"
  8.             android:layout_height="fill_parent" >

  9.                 <ImageView
  10.                     android:id="@+id/indicator"
  11.                     android:layout_width="wrap_content"
  12.                     android:layout_height="wrap_content"
  13.                     android:layout_centerVertical="true"
  14.                     android:layout_marginLeft="20dp"
  15.                     android:src="@drawable/refresh_arrow_down" />

  16.                 <LinearLayout
  17.                     android:layout_width="fill_parent"
  18.                     android:layout_height="fill_parent"
  19.                     android:layout_centerInParent="true"
  20.                     android:gravity="center"
  21.                     android:orientation="vertical" >

  22.                     <LinearLayout
  23.                         android:layout_width="fill_parent"
  24.                         android:layout_height="wrap_content"
  25.                         android:gravity="center"
  26.                         android:orientation="horizontal" >

  27.                         <ProgressBar
  28.                             android:id="@+id/progress"
  29.                             style="?android:attr/progressBarStyleSmall"
  30.                             android:layout_width="wrap_content"
  31.                             android:layout_height="wrap_content"
  32.                             android:indeterminateBehavior="repeat"
  33.                             android:max="10000"
  34.                             android:visibility="gone" />

  35.                         <TextView
  36.                             android:id="@+id/refresh_hint"
  37.                             android:layout_width="wrap_content"
  38.                             android:layout_height="wrap_content"
  39.                             android:layout_marginLeft="5.0dip"
  40.                             android:gravity="center_vertical"
  41.                             android:text="松开手指刷新"
  42.                             android:textSize="14.0sp" />
  43.                     </LinearLayout>

  44.                     <LinearLayout
  45.                         android:id="@+id/refresh_time_layout"
  46.                         android:layout_width="wrap_content"
  47.                         android:layout_height="wrap_content"
  48.                         android:layout_marginBottom="5dp"
  49.                         android:layout_marginTop="3dp" >

  50.                         <TextView
  51.                             android:id="@+id/textView1"
  52.                             android:layout_width="wrap_content"
  53.                             android:layout_height="wrap_content"
  54.                             android:gravity="center_vertical"
  55.                             android:text="上次刷新时间:"
  56.                             android:textSize="10sp" />

  57.                         <TextView
  58.                             android:id="@+id/refresh_time"
  59.                             android:layout_width="wrap_content"
  60.                             android:layout_height="wrap_content"
  61.                             android:text="0分钟"
  62.                             android:textSize="10sp" />

  63.                         <TextView
  64.                             android:id="@+id/textView2"
  65.                             android:layout_width="wrap_content"
  66.                             android:layout_height="wrap_content"
  67.                             android:text="前"
  68.                             android:textSize="10sp" />
  69.                     </LinearLayout>
  70.                 </LinearLayout>

  71.                 <View
  72.                     android:layout_width="fill_parent"
  73.                     android:layout_height="5dp"
  74.                     android:layout_alignParentBottom="true"
  75.                     android:background="#ffc8b67a" />

  76.         </RelativeLayout>

  77. </LinearLayout>
复制代码
3、使用代码
  1. RefreshableView mRefreshableView =findViewById(R.id.refresh_root);
  2. mRefreshableView.setRefreshListener(new RefreshListener() {
  3.             
  4.             @Override
  5.             public void onRefresh(RefreshableView view) {
  6.                 // TODO Auto-generated method stub
  7.                //刷新代码
  8.             }
  9.         });
  10. //刷新完毕后
  11. mRefreshableView.finishRefresh();
复制代码
4、下载:RefreshScroll.rar ~ 161KB
RefreshScroll.rar (161.16 KB, 下载次数: 220)

9 个回复

倒序浏览
的顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
回复 使用道具 举报
黑马黑马黑马黑马黑马黑马黑马黑马黑马黑马黑马黑马
回复 使用道具 举报
黑马黑马黑马黑马黑马黑马
回复 使用道具 举报
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
回复 使用道具 举报
黑马黑马黑马黑马黑马黑马
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马