package com.tiger.quicknews.wedget.viewimage.Tricks;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.database.DataSetObserver;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.SystemClock;
import android.support.v4.os.ParcelableCompat;
import android.support.v4.os.ParcelableCompatCreatorCallbacks;
import android.support.v4.view.AccessibilityDelegateCompat;
import android.support.v4.view.KeyEventCompat;
import android.support.v4.view.MotionEventCompat;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.VelocityTrackerCompat;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.ViewConfigurationCompat;
import android.support.v4.view.accessibility.AccessibilityEventCompat;
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
import android.support.v4.view.accessibility.AccessibilityRecordCompat;
import android.support.v4.widget.EdgeEffectCompat;
import android.util.AttributeSet;
import android.util.Log;
import android.view.FocusFinder;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SoundEffectConstants;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.accessibility.AccessibilityEvent;
import android.view.animation.Interpolator;
import android.widget.Scroller;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
/**
* Layout manager that allows the user to flip left and right
* through pages of data. You supply an implementation of a
* {@link PagerAdapter} to generate the pages that the view shows.
*
* <p>Note this class is currently under early design and
* development. The API will likely change in later updates of
* the compatibility library, requiring changes to the source code
* of apps when they are compiled against the newer version.</p>
*
* <p>ViewPager is most often used in conjunction with {@link android.app.Fragment},
* which is a convenient way to supply and manage the lifecycle of each page.
* There are standard adapters implemented for using fragments with the ViewPager,
* which cover the most common use cases. These are
* {@link android.support.v4.app.FragmentPagerAdapter} and
* {@link android.support.v4.app.FragmentStatePagerAdapter}; each of these
* classes have simple code showing how to build a full user interface
* with them.
*
* <p>Here is a more complicated example of ViewPager, using it in conjuction
* with {@link android.app.ActionBar} tabs. You can find other examples of using
* ViewPager in the API 4+ Support Demos and API 13+ Support Demos sample code.
*
* {@sample development/samples/Support13Demos/src/com/example/android/supportv13/app/ActionBarTabsPager.java
* complete}
*/
/**
* @author daimajia : I just remove the if condition in setPageTransformer() to
* make it compatiable with Android 2.0+ of course, with the help of the
* NineOldDroid. Thanks to JakeWharton.
* http://github.com/JakeWharton/NineOldAndroids
*/
public class ViewPagerEx extends ViewGroup {
private static final String TAG = "ViewPagerEx";
private static final boolean DEBUG = false;
private static final boolean USE_CACHE = false;
private static final int DEFAULT_OFFSCREEN_PAGES = 1;
private static final int MAX_SETTLE_DURATION = 600; // ms
private static final int MIN_DISTANCE_FOR_FLING = 25; // dips
private static final int DEFAULT_GUTTER_SIZE = 16; // dips
private static final int MIN_FLING_VELOCITY = 400; // dips
private static final int[] LAYOUT_ATTRS = new int[] {
android.R.attr.layout_gravity
};
/**
* Used to track what the expected number of items in the adapter should be.
* If the app changes this when we don't expect it, we'll throw a big
* obnoxious exception.
*/
private int mExpectedAdapterCount;
static class ItemInfo {
Object object;
int position;
boolean scrolling;
float widthFactor;
float offset;
}
private static final Comparator<ItemInfo> COMPARATOR = new Comparator<ItemInfo>() {
@Override
public int compare(ItemInfo lhs, ItemInfo rhs) {
return lhs.position - rhs.position;
}
};
private static final Interpolator sInterpolator = new Interpolator() {
@Override
public float getInterpolation(float t) {
t -= 1.0f;
return t * t * t * t * t + 1.0f;
}
};
private final ArrayList<ItemInfo> mItems = new ArrayList<ItemInfo>();
private final ItemInfo mTempItem = new ItemInfo();
private final Rect mTempRect = new Rect();
private PagerAdapter mAdapter;
private int mCurItem; // Index of currently displayed page.
private int mRestoredCurItem = -1;
private Parcelable mRestoredAdapterState = null;
private ClassLoader mRestoredClassLoader = null;
private Scroller mScroller;
private PagerObserver mObserver;
private int mPageMargin;
private Drawable mMarginDrawable;
private int mTopPageBounds;
private int mBottomPageBounds;
// Offsets of the first and last items, if known.
// Set during population, used to determine if we are at the beginning
// or end of the pager data set during touch scrolling.
private float mFirstOffset = -Float.MAX_VALUE;
private float mLastOffset = Float.MAX_VALUE;
private int mChildWidthMeasureSpec;
private int mChildHeightMeasureSpec;
private boolean mInLayout;
private boolean mScrollingCacheEnabled;
private boolean mPopulatePending;
private int mOffscreenPageLimit = DEFAULT_OFFSCREEN_PAGES;
private boolean mIsBeingDragged;
private boolean mIsUnableToDrag;
private boolean mIgnoreGutter;
private int mDefaultGutterSize;
private int mGutterSize;
private int mTouchSlop;
/**
* Position of the last motion event.
*/
private float mLastMotionX;
private float mLastMotionY;
private float mInitialMotionX;
private float mInitialMotionY;
/**
* ID of the active pointer. This is used to retain consistency during
* drags/flings if multiple pointers are used.
*/
private int mActivePointerId = INVALID_POINTER;
/**
* Sentinel value for no current active pointer. Used by
* {@link #mActivePointerId}.
*/
private static final int INVALID_POINTER = -1;
/**
* Determines speed during touch scrolling
*/
private VelocityTracker mVelocityTracker;
private int mMinimumVelocity;
private int mMaximumVelocity;
private int mFlingDistance;
private int mCloseEnough;
// If the pager is at least this close to its final position, complete the
// scroll
// on touch down and let the user interact with the content inside instead
// of
// "catching" the flinging pager.
private static final int CLOSE_ENOUGH = 2; // dp
private boolean mFakeDragging;
private long mFakeDragBeginTime;
private EdgeEffectCompat mLeftEdge;
private EdgeEffectCompat mRightEdge;
private boolean mFirstLayout = true;
private boolean mNeedCalculatePageOffsets = false;
private boolean mCalledSuper;
private int mDecorChildCount;
private OnPageChangeListener mOnPageChangeListener;
private OnPageChangeListener mInternalPageChangeListener;
private OnAdapterChangeListener mAdapterChangeListener;
private PageTransformer mPageTransformer;
private Method mSetChildrenDrawingOrderEnabled;
没有合适的资源?快使用搜索试试~ 我知道了~
Android 新闻快讯app
共780个文件
java:361个
png:183个
xml:180个
需积分: 9 7 下载量 110 浏览量
2018-05-21
12:28:01
上传
评论
收藏 13.7MB ZIP 举报
温馨提示
新闻快讯app---------------------------------------------------------------------------------------------------------------------------------------------
资源推荐
资源详情
资源评论
收起资源包目录
Android 新闻快讯app (780个子文件)
.classpath 1017B
.classpath 466B
.factorypath 162B
应用宝动态截屏2014081801.gif 466KB
.gitattributes 483B
.gitignore 682B
.gitignore 10B
.gitignore 10B
build.gradle 1KB
build.gradle 1KB
QuickNews.iml 880B
vitamio.iml 765B
androidannotations-3.1.jar 660KB
android-support-v4.jar 633KB
umeng-analytics-v5.2.3.jar 354KB
universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar 251KB
nineoldandroids-2.4.0.jar 108KB
androidannotations-api-3.1.jar 104KB
umeng-update-v2.4.2.jar 103KB
picasso-2.3.1.jar 100KB
com.haarman.listviewanimations-2.6.0.jar 95KB
volley.jar 85KB
umeng-fb-v4.3.2.jar 64KB
viewpagertransformslibrary.jar 14KB
ViewPagerEx.java 112KB
MediaPlayer.java 52KB
SlidingLayout.java 51KB
SwipeListView.java 46KB
FlipView.java 40KB
SwipeListViewTouchListener.java 36KB
CustomViewAbove.java 36KB
PhotoViewAttacher.java 35KB
Crouton.java 34KB
SlidingMenu.java 33KB
HanziToPinyin3.java 30KB
VideoView.java 29KB
Base64.java 28KB
ACache.java 21KB
PagerIndicator.java 20KB
SliderLayout.java 19KB
Manager.java 17KB
DragGrid.java 17KB
Style.java 16KB
ProgressButton.java 16KB
MediaFormat.java 16KB
MediaController.java 15KB
Utils.java 15KB
CustomViewBehind.java 14KB
ProgressPieView.java 14KB
MainActivity.java 14KB
MediaScanner.java 14KB
MediaStore.java 13KB
ChannelActivity.java 12KB
IPhotoView.java 11KB
IndexScroller.java 11KB
EGL.java 10KB
MediaMetadataRetriever.java 10KB
PreferencesUtils.java 10KB
AndroidFileUtil.java 9KB
DetailsActivity.java 9KB
NewsFragment.java 9KB
YuLeFragment.java 9KB
ChannelManage.java 9KB
Metadata.java 9KB
JunShiFragment.java 9KB
FangChanFragment.java 9KB
DianYingFragment.java 8KB
ShiShangFragment.java 8KB
JingXuanFragment.java 8KB
XiaoHuaFragment.java 8KB
StringUtils.java 8KB
DianTaiFragment.java 8KB
CaiJingFragment.java 8KB
QinGanFragment.java 8KB
YiDongFragment.java 8KB
JiaoYuFragment.java 8KB
LunTanFragment.java 8KB
ShouJiFragment.java 8KB
FoodBallFragment.java 8KB
YouXiFragment.java 8KB
LvYouFragment.java 8KB
QinZiFragment.java 8KB
QiCheFragment.java 8KB
JiaJuFragment.java 8KB
ShuMaFragment.java 8KB
Vitamio.java 8KB
BoKeFragment.java 8KB
TiYuFragment.java 8KB
KeJiFragment.java 8KB
LogUtils.java 8KB
BaoXueYouXiFragment.java 8KB
BeiJingFragment.java 8KB
JellyBeanSpanFixTextView.java 8KB
ChannelDao.java 8KB
TuPianMingXingFragment.java 7KB
TuPianFragment.java 7KB
TuPianTiTanFragment.java 7KB
TuPianReDianFragment.java 7KB
TuPianMeiTuFragment.java 7KB
TuPianDuJiaFragment.java 7KB
共 780 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
qq_23920831
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功