android 下拉重新整理上拉載入更多,高仿ios左滑動刪除item,解決了眾多手勢問題,androidios

來源:互聯網
上載者:User

android 下拉重新整理上拉載入更多,高仿ios左滑動刪除item,解決了眾多手勢問題,androidios

一、前言

老規矩,別的不說,這demo是找了很相關知識集合而成的,可以說對我這種小白來說是絞盡腦汁!程式員講的是無圖無真相!現在大家一睹為快!



二、比較關鍵的還是scroller這個類的

package com.icq.slideview.view;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.util.TypedValue;import android.view.MotionEvent;import android.view.View;import android.widget.LinearLayout;import android.widget.RelativeLayout;import android.widget.Scroller;import android.widget.TextView;import com.icq.slideview.R;public class SlideView extends LinearLayout {    private static final String TAG = "SlideView";    private Context mContext;    private LinearLayout mViewContent;    private RelativeLayout mHolder;    private Scroller mScroller;    private OnSlideListener mOnSlideListener;    private int mHolderWidth = 120;    private int mLastX = 0;    private int mLastY = 0;    private static final int TAN = 2;    public interface OnSlideListener {        public static final int SLIDE_STATUS_OFF = 0;        public static final int SLIDE_STATUS_START_SCROLL = 1;        public static final int SLIDE_STATUS_ON = 2;        /**         * @param view current SlideView         * @param status SLIDE_STATUS_ON or SLIDE_STATUS_OFF         */        public void onSlide(View view, int status);    }    public SlideView(Context context) {        super(context);        initView();    }    public SlideView(Context context, AttributeSet attrs) {        super(context, attrs);        initView();    }    private void initView() {        mContext = getContext();        mScroller = new Scroller(mContext);        setOrientation(LinearLayout.HORIZONTAL);        View.inflate(mContext, R.layout.slide_view_merge, this);        mViewContent = (LinearLayout) findViewById(R.id.view_content);        mHolderWidth = Math.round(TypedValue.applyDimension(                TypedValue.COMPLEX_UNIT_DIP, mHolderWidth, getResources()                        .getDisplayMetrics()));    }    public void setButtonText(CharSequence text) {        ((TextView)findViewById(R.id.delete)).setText(text);    }    public void setContentView(View view) {        mViewContent.addView(view);    }    public void setOnSlideListener(OnSlideListener onSlideListener) {        mOnSlideListener = onSlideListener;    }    public void shrink() {        if (getScrollX() != 0) {            this.smoothScrollTo(0, 0);        }    }    public void onRequireTouchEvent(MotionEvent event) {        int x = (int) event.getX();        int y = (int) event.getY();        int scrollX = getScrollX();        Log.d(TAG, "x=" + x + "  y=" + y);        switch (event.getAction()) {        case MotionEvent.ACTION_DOWN: {                int deltaX = x - mLastX;         System.out.println("按下位移"+deltaX);            if (!mScroller.isFinished()) {                mScroller.abortAnimation();            }            if (mOnSlideListener != null) {                mOnSlideListener.onSlide(this,                        OnSlideListener.SLIDE_STATUS_START_SCROLL);            }            break;        }        case MotionEvent.ACTION_MOVE: {            int deltaX = x - mLastX;            int deltaY = y - mLastY;            System.out.println("位移"+deltaX);            if (Math.abs(deltaX) < Math.abs(deltaY) * TAN) {                break;            }            int newScrollX = scrollX - deltaX;            if (deltaX != 0) {                if (newScrollX < 0) {                    newScrollX = 0;                } else if (newScrollX > mHolderWidth) {                    newScrollX = mHolderWidth;                }                this.scrollTo(newScrollX, 0);            }            break;        }        case MotionEvent.ACTION_UP: {            int newScrollX = 0;            if (scrollX - mHolderWidth * 0.75 > 0) {                newScrollX = mHolderWidth;            }            this.smoothScrollTo(newScrollX, 0);            if (mOnSlideListener != null) {                mOnSlideListener.onSlide(this,                        newScrollX == 0 ? OnSlideListener.SLIDE_STATUS_OFF                                : OnSlideListener.SLIDE_STATUS_ON);            }            break;        }        default:            break;        }        mLastX = x;        mLastY = y;    }    private void smoothScrollTo(int destX, int destY) {        // 緩慢滾動到指定位置        int scrollX = getScrollX();        int delta = destX - scrollX;        System.out.println("位移scrollX"+scrollX);        System.out.println("位移差delta"+delta);        int a= Math.abs(delta) * 3;        System.out.println("什麼意思"+a);        mScroller.startScroll(scrollX, 0, delta, 0, Math.abs(delta) * 3);        invalidate();    }    @Override    public void computeScroll() {        if (mScroller.computeScrollOffset()) {        System.out.println("當前x位置:"+mScroller.getCurrX());        System.out.println("當前Y位置:"+mScroller.getCurrY());            scrollTo(mScroller.getCurrX(), mScroller.getCurrY());            postInvalidate();        }    }}

三、直接源碼下載了:最近總結一下,csdn在我看來最近沒有那麼活躍了,真正的大牛已經很少在csdn發微博了,都去了github、stackoverflow、eoe等網站了!哎,逼於無奈我後期也得轉移陣地了!

點擊下載源碼
蘋果4s越獄ios7後裝什外掛程式

外掛程式有如下:
【A】
Activator: 手勢外掛程式,這個不懂,應該沒話說了,就是能夠利用在螢幕上某個地方滑動或者雙擊來操作某些功能的外掛程式(例如回到主畫面)這個是很常用的。
Aero:神奇夢幻的後台切換外掛程式,有很多奇妙的效果

afc2add:越獄必備外掛程式,使得越獄後的iphone能夠與itools等軟體進行識別
AirBlue:這個是iphone上藍芽功能更新的外掛程式,iphone本來的藍芽真的是很爛很爛的,而安裝了這個外掛程式之後,就能夠與android,ios,s60,pc等其他各種具備藍芽功能的裝置傳輸檔案
AllMail:使得iphone內建的mailapp有大量操作功能(例如批量標記已讀,大量刪除等)
Anonysend:偽造任意寄件者的郵件發送給對方
AnyAttach:使得iphone內建的mail app能夠發送附件
App stat:記錄你使用所有軟體的次數,這個可以使得我們知道自己使用什麼軟體的頻率最多
AppInfo:這個可以查看app以及外掛程式的各種資訊,例如版本號碼,也可以配合ifile直接進入相應app或者外掛程式的檔案裡,例如我們想要進行檔案拷貝或者刪除的時候,這個很好用
AppLocker:iphone上最好用的檔案鎖,也包含檔案夾鎖功能
AppSync for ios5.0+ :ios5 越獄必備外掛程式,只有裝了這個外掛程式才能使用破解app

【B】
Barrel:華麗的翻頁外掛程式,厭倦了iphone上單一的翻頁效果的童鞋必備哦
BatteryDoctorPro:越獄版的金山電池管家,App Store上的根本沒法比
biteSMS:iphone唯一能夠替代原本的資訊的外掛程式,具備密碼保護功能,還有快捷回複,發送等,超級好用

【F】
FastBlurredNotification:通知中樞透明效果
firebreak:開啟iphone內建的全景照相功能

【G】
giffy:使得iphone內建相簿能夠播放gif動畫
GridTab for Safari: Safari增強外掛程式,使得Safari原本的標籤頁從滑動一頁一頁查看變成了ipad的9宮格形狀,使得查看起來更加方便

【I】
iap cracker:使得某些內建收費app能夠免費購買收費的工具,例如talking tom 2收費才能去除廣告以及買衣服,安裝了這個就變成免費的了
iap cracker List:查看這個外掛程式支援的app列表
iCaughtU Pro:一個iphone防盜外掛程式,在鎖屏情況下輸入錯誤密碼會自動開啟自拍,把照片發到你原本設定的郵箱
同類型的還有igotya,不過我測試過,igotya佔用記憶體會更多,而且相對來說卡一點
iCleaner:清除iphone上很多緩衝或者一些可以刪除的檔案,這個能夠幫你刪除你之前安裝的外掛程式的一些殘留檔案,不過在使用的時候,最後一項filetype不建議清除
這個很好用,幫我清楚了"其他“裡面500多M的容量

iFile:iphone上最好用的檔案管理系統
Infinidock:dock爛表徵圖可以無限擺放,很好的隱藏表徵圖的外掛程式哦
Infinifloders:iphone上的檔案夾擴充,使得檔案夾能夠存放無限的app,必備哦
iPhoto501Fix:要在5.01上使用iphone,就一定要裝上這個才行
Ipsum:很多時候在鎖定畫面上收到提醒都是不能直接刪除掉的,看起來不舒服,可以使用這個外掛程式,拉住表徵圖往右移動一次,再往回移動一次,提醒就會消失了
KillBackground:這個是在後台出現一個表徵圖,按......餘下全文>>
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.