精华内容
下载资源
问答
  • 基于XListView的基础上,把它的头部刷新换成自己定义的控件,这与IOS版上的QQ刷新类似。效果如下: 水滴效果可以看我的上一篇博客 水滴效果实现一、代码由于这是基于XListView 的,所以大部分代码就不贴了,只是把...

    基于XListView的基础上,把它的头部刷新换成自己定义的控件,这与IOS版上的QQ刷新类似。效果如下:
    这里写图片描述

    水滴效果可以看我的上一篇博客
    水滴效果实现

    一、代码

    由于这是基于XListView 的,所以大部分代码就不贴了,只是把头部的headerview代码修改。

    1、通过改变控件的高度来实现动态效果。这部分是在XListView 上实现。

    xlistview_waterEffect.getLayoutParams().height = height;
    xlistview_waterEffect.requestLayout();

    public void setVisiableHeight(int height) {
            if (height < 0) {
                height = 0;
            }
    
            LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mContainer
                    .getLayoutParams();
            lp.height = height;
            mContainer.setLayoutParams(lp);
            if (height > dip2px(getContext(), 120)) {
                height = dip2px(getContext(), 120);
            }
            xlistview_header_content.getLayoutParams().height = height;
            xlistview_header_content.requestLayout();
            xlistview_waterEffect.getLayoutParams().height = height;
            xlistview_waterEffect.requestLayout();
        }

    2、使用方式。

    (1)在布局的引用

    <xlistview.XListView 
            android:id="@+id/xlistview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:cacheColorHint="#ffffff"/>

    (2) 在activity中使用

    private void initData(){
            testData = new ArrayList<String>();
            refreshData();
            xlistview.setPullLoadEnable(true);
            arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, testData);
            xlistview.setAdapter(arrayAdapter);
            xlistview.setXListViewListener(new IXListViewListener() {
                @Override
                public void onRefresh() {
                    handler.sendEmptyMessageDelayed(0, 1000);
                }
                @Override
                public void onLoadMore() {
                    handler.sendEmptyMessageDelayed(1, 1000);
                }
            });
        }
        Handler handler = new Handler(){
            public void dispatchMessage(android.os.Message msg) {
                switch(msg.what){
                case 0:
                    refreshData();
                    arrayAdapter.notifyDataSetChanged();
                    break;
                case 1:
                    loadData();
                    break;
                }
                stopXlistView();
            };
        };
        private void refreshData(){
            testData.clear();
            for(int i=0;i<10;i++){
                testData.add("测试=="+i);
            }
        }
        private void loadData(){
            for(int i=0;i<10;i++){
                testData.add("load===="+i);
            }
            arrayAdapter.notifyDataSetChanged();
        }
        private void stopXlistView(){
            xlistview.stopRefresh();
            xlistview.stopLoadMore();
        }

    3、修改控件属性

    (1)在XListView 代码中修改下拉的高度。

    height > dip2px(getContext(), 120),其中在这里设置它的高度为120dp.

    public void setVisiableHeight(int height) {
            if (height < 0) {
                height = 0;
            }
    
            LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mContainer
                    .getLayoutParams();
            lp.height = height;
            mContainer.setLayoutParams(lp);
            if (height > dip2px(getContext(), 120)) {
                height = dip2px(getContext(), 120);
            }
            xlistview_header_content.getLayoutParams().height = height;
            xlistview_header_content.requestLayout();
            xlistview_waterEffect.getLayoutParams().height = height;
            xlistview_waterEffect.requestLayout();
        }

    (2)修改头部圆形的大小。

    直接在WaterEffect.java中修改

    private float bigRadius = 18;// 大圆半径
    private float smallRadius = 12;// 小圆半径

    (3)修改头部、底部圆形进度条的类型。

    分别在xlistview_header.xml、xlistview_footer.xml,中把ProgressBar控件替换即可。

    二、总结

    关键是水滴效果的实现,这个刷新效果我是基于XListView 来修改的,水滴效果可以参考我上一篇博客。这和QQ的不是完全一样的。
    具体代码也上传了。
    源码

    展开全文
  • 作者north2016,源码PathRefresh,自定义控件之-高仿Path水滴下拉刷新
  • 效果如图,下拉后产生一个水滴的效果1.在你module的build.gradle中添加依赖dependencies { compile '...

    效果如图,下拉后产生一个水滴的效果

    640?wx_fmt=gif

    1.在你module的build.gradle中添加依赖

    dependencies {    compile 'com.github.recruit-lifestyle:WaveSwipeRefreshLayout:1.6'   }repositories {        maven {            url "https://jitpack.io"        }}

    2.在xml中用WaveSwipeRefreshLayout包裹你的控件

              android:id="@+id/wave_swipe"        android:layout_width="match_parent"        android:layout_height="match_parent">                    android:id="@+id/recyclerView"            android:layout_width="match_parent"            android:layout_height="match_parent" />    

    3.在Java代码中使用

    public class MainActivity extends AppCompatActivity {    @BindView(R.id.wave_swipe)    WaveSwipeRefreshLayout mWaveSwipe;    Handler mHandler = new Handler();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.bind(this);        //设置小圆圈颜色        mWaveSwipe.setColorSchemeColors(Color.WHITE, Color.YELLOW,Color.RED,Color.GREEN);        //设置背景色        mWaveSwipe.setWaveColor(Color.argb(255,63,81,181));        //设置刷新监听        mWaveSwipe.setOnRefreshListener(new WaveSwipeRefreshLayout.OnRefreshListener() {            @Override public void onRefresh() {                new Thread() {                    @Override                    public void run() {                        SystemClock.sleep(3000); //do something in background                        mHandler.post(new Runnable() { //stop refreshing                            @Override                            public void run() {                                //...                                mWaveSwipe.setRefreshing(false);//调用这个方法结束刷新小圆圈的显示                            }                        });                    }                }.start();            }        });    } }

    WaveSwipeRefreshLayout控件原地址:

    https://github.com/recruit-lifestyle/WaveSwipeRefreshLayout

    到这里就结束啦.

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    展开全文
  • Android 酷炫水滴效果的下拉刷新 源码,效果非常不错。
  • Android水滴落下的下拉刷新

    千次阅读 2016-08-16 16:40:31
    Android水滴落下的下拉刷新 非常逼真的水滴落下的下拉刷新。你可以配合ListView一起使用。 项目library下载地址:源码下载地址 我的demo下载地址(包含异步):水滴落下下拉刷新demo 效果图:
    Android之水滴落下的下拉刷新
    非常逼真的水滴落下的下拉刷新。你可以配合ListView一起使用。
    项目library下载地址:源码下载地址
    我的demo下载地址(包含异步):水滴落下下拉刷新demo
    效果图:































    主要是用到一个库:WaveSwipeRefreshLayout
    <span style="font-size:18px;">   <jp.co.recruit_lifestyle.android.widget.WaveSwipeRefreshLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/main_swipe"
            android:layout_below="@+id/toolbar"
            >
    
          <ListView
              android:id="@+id/main_list"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
    
    
              />
    
        </jp.co.recruit_lifestyle.android.widget.WaveSwipeRefreshLayout></span>



    MainActivuty:
    <span style="font-size:18px;">package jp.co.recruit_lifestyle.sample;
    
    import android.graphics.Color;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.os.Handler;
    import android.support.v7.app.AppCompatActivity;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.Window;
    import android.view.WindowManager;
    import android.widget.ArrayAdapter;
    import android.widget.BaseAdapter;
    import android.widget.ListView;
    import android.widget.TextView;
    
    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.List;
    
    import jp.co.recruit_lifestyle.android.widget.WaveSwipeRefreshLayout;
    
    public class MainActivity extends AppCompatActivity implements WaveSwipeRefreshLayout.OnRefreshListener {
      private Myadapter myadapter;
      private String str;
      private ListView mListview;
    
    
      private WaveSwipeRefreshLayout mWaveSwipeRefreshLayout;
      private LinkedList<String> list=new LinkedList<String>();
    
    
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        super.onCreate(savedInstanceState);
    
        setContentView(R.layout.activity_main);
        initView();
        setSampleData();
      }
    
      private void initView() {
        mWaveSwipeRefreshLayout = (WaveSwipeRefreshLayout) findViewById(R.id.main_swipe);
        mWaveSwipeRefreshLayout.setColorSchemeColors(Color.WHITE, Color.WHITE);
        mWaveSwipeRefreshLayout.setOnRefreshListener(this);
        mWaveSwipeRefreshLayout.setWaveColor(Color.DKGRAY);
        //mWaveSwipeRefreshLayout.setMaxDropHeight(1300);
    
        mListview = (ListView) findViewById(R.id.main_list);
      }
    
      private void setSampleData() {
    
        for (int i = 0; i < 60; i++) {
          list.add("你好" );
        }
       myadapter=new Myadapter(list);
        mListview.setAdapter(myadapter);
      }
      class Myadapter extends BaseAdapter{
         List<String> list=new ArrayList<String>();
           public Myadapter (List<String> list){
          this.list=list;
        }
    
        @Override
        public int getCount() {
          return list.size();
        }
    
        @Override
        public Object getItem(int i) {
          return list.get(i);
        }
    
        @Override
        public long getItemId(int i) {
          return i;
        }
    
        @Override
        public View getView(int i, View converView, ViewGroup viewGroup) {
        View view;
          if (converView==null){
            view=View.inflate(MainActivity.this,R.layout.item,null);
          }else {
            view=converView;
          }
          TextView tvitem= (TextView) view.findViewById(R.id.tvitem);
          tvitem.setText(list.get(i));
          return view;
        }
      }
    
      private void refresh(){
        new Handler().postDelayed(new Runnable() {
          @Override
          public void run() {
            // 更新が終了したらインジケータ非表示
            new Task().execute();
    
            mWaveSwipeRefreshLayout.setRefreshing(false);
          }
        }, 3000);
      }
    
      class Task extends AsyncTask<Void, Void,String>{
    
        @Override
        protected String doInBackground(Void... voids) {
    
          try {
            Thread.sleep(500);
            for (int a=0;a<10;a++){
     str="我是被添加的";
    
            }
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
          return str;
    
        }
    
        @Override
        protected void onPostExecute(String stringlist) {
     list.addFirst(stringlist);
          myadapter.notifyDataSetChanged();
    
    
    
          mWaveSwipeRefreshLayout.setRefreshing(false);
    
          super.onPostExecute(stringlist);
        }
      }
    
      @Override
      protected void onResume() {
        mWaveSwipeRefreshLayout.setRefreshing(true);
        refresh();
        super.onResume();
      }
    
      @Override
      public void onRefresh() {
        refresh();
      }
    
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
      }
    
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
    
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
          mWaveSwipeRefreshLayout.setRefreshing(true);
          refresh();
          return true;
        }
    
        return super.onOptionsItemSelected(item);
      }
    }
    </span>


    展开全文
  • android 水滴动画版下拉刷新

    热门讨论 2015-09-14 10:31:11
    代码为博客的实例代码,有问题请博客留言:http://blog.csdn.net/seven2729/article/details/48435523
  • 水滴效果的下拉刷新

    2018-12-11 10:06:46
    自定义组件实现listview的水滴效果的下拉刷新android组件特效
  •  //第一步 导入依赖   implementation 'com.github.recruit-lifestyle:WaveSwipeRefreshLayout:1.6' ...jp.co.recruit_lifestyle.android.widget.WaveSwipeRefreshLayout android:layout_...

     //第一步 导入依赖

     

    implementation 'com.github.recruit-lifestyle:WaveSwipeRefreshLayout:1.6'

    //第二步 写xml布局

     

    <jp.co.recruit_lifestyle.android.widget.WaveSwipeRefreshLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/main_swipe">
    
        <ListView
            android:id="@+id/main_list"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    
    </jp.co.recruit_lifestyle.android.widget.WaveSwipeRefreshLayout>

    //第三步 Activity里使用:

     

    private void initView() {
        
        main_list = (ListView) findViewById(R.id.main_list);
        main_swipe = (WaveSwipeRefreshLayout) findViewById(R.id.main_swipe);
    
    
        main_swipe.setOnRefreshListener(new WaveSwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                //请在此处刷新列表
                new Task().execute();
            }
        });
    
    }
    
    private class Task extends AsyncTask<Void, Void, String[]> {
        @Override
        protected String[] doInBackground(Void... voids) {
            try {
                //执行了2秒的睡眠
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return new String[0];
        }
    
        @Override protected void onPostExecute(String[] result) {
            //刷新列表后,调用setdreshing ( false )。动画结束
            main_swipe.setRefreshing(false);
            super.onPostExecute(result);
        }
    }

     

     //最好改成16的

    minSdkVersion 16

    //-----------------------------------------------------------------------完-----------------------------------------------------------------------------------

    展开全文
  • Android好的的水滴下拉刷新控件

    千次阅读 2016-12-30 14:18:49
    自定义View,在项目中添加这2个类import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import ...
  • 下拉刷新的实现效果https://www.cnblogs.com/foxy/p/7825073.html 我是选了水滴的github项目 https://github.com/THEONE10211024/WaterDropListView,先是看了这里https://blog.csdn.net/z...
  • 一个下拉刷新的实现,水滴效果。 activity_main.xml xmlns:app="http://schemas.android.com/apk/res-auto" app:AniBackColor="#e8eae9" app:AniForeCol
  • Android 超炫水滴效果的下拉刷新 源码,移植eclipse和android studio 都很简单,配置一下就可以
  • 第一步: 1.在app build.gradle中加入依赖: implementation '... 2.AndroidManifest中添加网络权限 &lt;uses-permission android:name="android.permiss...
  • 自定义粘性下拉刷新

    2017-08-09 19:51:35
    android中自定义的下拉刷新很常用,尤其是在刷新页面更新数据的时候,b比较炫酷的下拉刷新可以赋予一个页面比较好的交互体验; 1 下面先来看几个效果图(在代码中自定义了属性,可以在xml中随意配置实现不同的效果): ...
  • WaveSwipeRefreshLayout 类别: 列表 (ListView) ...开发环境: Android Studio 浏览: 1804 次 下载: 397 次 项目地址: https://github.com/recruit-lifestyle/WaveSwi...
  • 好吧,比如,我一直关注的鸿神,还有让我买了第一本Android书籍的郭大侠。好了,就说这些吧。效果如下:2、整合前面已经说了,像我这样学了不到1年Android的菜鸟哪会写这么高大上的控件啊。菜鸟就得站在巨人的肩膀上...
  • 下载地址:... 直接把代码复制到你的项目于即可使用: 使用: 在xml中: ...jp.co.recruit_lifestyle.android.widget.WaveSwipeRefreshLayout ... android:layout_wi...
  • 适用各个布局的自定义下拉刷新

    千次阅读 2015-09-14 09:57:36
    然而还不够炫,我接下来给大家动画版的下拉刷新水滴下拉刷新,有什么问题请及时反馈,好修改 效果图如下: 自定义类 定义了刷新的方法。如果有需要加载更多可自行修改。 该demo 是我从其他地方下载下来的,...
  • Android之下拉刷新下拉加载 我的是AndroidX,其他的没测过 我这个按钮是额外加的,请忽略 最近才发现,还有好多好看的header(本条可忽略) 把上面那个header换成下面的更好玩 ...
  • 一个酷炫实用的下拉刷新开源库

    千次阅读 2015-09-01 18:44:06
    先上图:类似于水滴下拉刷新效果  Demo下载:(其中项目根目录下的circlerefresh就是该类库)。下面说说如何使用circlerefresh实现下拉刷新功能。 一。搭建工程:(这里以android studio开发环境为例) 下载...
  • 仿IOS中下拉刷新的“雨滴”效果

    千次阅读 2015-07-02 12:53:20
    在IOS中,有非常赞的“水滴下拉效果,很久之前也想在Android上实现,但是苦于能力有限,一直未能付诸行动。这几天趁着空隙时间,写了一版初步实现,基本达到了“水滴”拖拽的效果。但是还有很多细节需要进一步完善...
  • 有些类似自定义的XListView 控件,与其不同的在于它刷新的时候有类似水滴下拉效果。 给大家看看效果图先: 下面是它定义动画的类, 主要是在判断距离的时候创建回弹动画,代码有注释可以瞅瞅先

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

下拉刷新水滴android