日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android自定义控件之3D上下翻页效果的倒计时控件

發布時間:2024/3/26 Android 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android自定义控件之3D上下翻页效果的倒计时控件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是一個自定義的倒計時控件,具有3D上下翻頁翻轉效果。最近項目中需要做一個倒計時控件,需要和iOS端的效果保持一樣。大致效果是這樣的,如下圖所示:


由于暫時還不會怎么樣制作gif動態圖,所以想看具體效果的,可以在下面的源碼中下載運行查看。

廢話不說了,開干吧。那么是怎么實現呢?我們首先得找到3D翻頁的效果,這個效果我是參考的一個github項目,https://github.com/emilsjolander/android-FlipView。

其次,倒計時的邏輯,這個不難,最后是自定義的View了。

下面是動畫的效果


1.動畫的效果

(1).這里的動畫效果是由Scroller類來實現的。

public void startScroll (int startX, int startY, int dx, int dy, int duration)(2).翻頁效果
? ? ? ? ? ?主要分為三部分

? ? ? ? ? ?|___繪制控件翻轉頁面的上半部分:

canvas.clipRect(mTopRect);

? ? ? ? ? ?|___繪制控件翻轉頁面的下半部分:?

canvas.clipRect(mBottomRect);

? ? ? ? ? ?|___繪制控件中間的翻頁部分:這里利用的是camera類的方法,

camera.rotateX()//看意思就明白表示沿X軸翻轉,這是翻轉效果的核心方法。 camera.clipRect(mTopRect,mBottom) //根據當前翻轉的度數(0~180度),決定畫布裁剪部分。 camera.getMatrix(mMatrix) //設置matrix矩陣的值,對中間頁進行變形,達到翻頁的視覺效果。 //然后通過矩陣變換,繪制視圖和控件 mMatrix.preScale(0.25f, 0.25f); mMatrix.postScale(4.0f, 4.0f); mMatrix.preTranslate(-getWidth() / 2, -getHeight() / 2); mMatrix.postTranslate(getWidth() / 2, getHeight() / 2); canvas.concat(mMatrix) drawChild();其中,控件中間的黑線,也是自定義的一個TextView,因為原生的TextView沒有設置文字上畫黑線的方法,有畫線的方法,但是是跟著字體的顏色變化的,所以不符合需求,需要自定義一下,設置繪畫的顏色。

不說了,上代碼

clock_view_activity.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:customs="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#3B96FD"android:gravity="center_horizontal"android:orientation="vertical" ><com.example.timeticker.MyClockViewandroid:id="@+id/clockView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="14dp"android:background="@mipmap/tcd_timer_bg"customs:dayTextBackground="@drawable/time_bg"customs:dayTextColor="#ffffff"customs:hourTextBackground="@drawable/time_bg"customs:hourTextColor="#ffffff"customs:minTextBackground="@drawable/time_bg"customs:minTextColor="#ffffff"customs:secTextBackground="@drawable/time_bg"customs:secTextColor="#ffffff" ></com.example.timeticker.MyClockView><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="倒計時" /></LinearLayout> attrs.xml 自定義的屬性
<?xml version="1.0" encoding="utf-8"?> <resources><declare-styleable name="MyClock"><attr name="dayTextSize" format="dimension" /><attr name="hourTextSize" format="dimension" /><attr name="minTextSize" format="dimension" /><attr name="secTextSize" format="dimension" /><attr name="dayTextColor" format="color" /><attr name="hourTextColor" format="color" /><attr name="minTextColor" format="color" /><attr name="secTextColor" format="color" /><attr name="dayTextBackground" format="reference|color" /><attr name="hourTextBackground" format="reference|color" /><attr name="minTextBackground" format="reference|color" /><attr name="secTextBackground" format="reference|color" /></declare-styleable> </resources> ids.xml 因為用到的是動態布局,為了能找到控件,得為每個控件設置一個id

<?xml version="1.0" encoding="utf-8"?> <resources><item name="dayTextView" type="id" /><item name="hourTextView" type="id" /><item name="minTextView" type="id" /><item name="secTextView" type="id" /> </resources> time_bg.xml 控件的樣式

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" ><corners android:radius="3dp" /><!-- 實心 即填充顏色 --><solid android:color="#0B315C" /><!-- 按鈕文字和邊緣距離(內邊距) --><paddingandroid:bottom="3dp"android:left="6dp"android:right="6dp"android:top="3dp" /></shape> clock_view_bg.xml 控件外框的樣式
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" ><corners android:radius="10dp" /><!-- 實心 即填充顏色 --><solid android:color="#00000000" /><strokeandroid:width="2dp"android:color="#2F80E9" /><!-- 按鈕文字和邊緣距離(內邊距) --><paddingandroid:bottom="5dp"android:left="5dp"android:right="5dp"android:top="5dp" /></shape> FlipClockView.java
package com.example.timeticker;import android.content.Context; import android.graphics.Camera; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.Gravity; import android.view.View; import android.view.animation.DecelerateInterpolator; import android.widget.FrameLayout; import android.widget.Scroller; import android.widget.TextView;/**日歷3D翻轉效果*/ public class FlipClockView extends FrameLayout {private TextView mVisibleTextView;// 可見的private TextView mInvisibleTextView;// 不可見private int layoutWidth;private int layoutHeight;private Scroller mScroller;private Camera mCamera = new Camera();private Matrix mMatrix = new Matrix();private Rect mTopRect = new Rect();private Rect mBottomRect = new Rect();private boolean isUp2Down = true;private Paint mShinePaint = new Paint();private Paint mShadePaint = new Paint();private boolean isFlipping = false;public FlipClockView(Context context) {this(context, null);}public FlipClockView(Context context, AttributeSet attrs) {super(context, attrs, 0);init(context);}public FlipClockView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}public void init(Context context) {mScroller = new Scroller(context, new DecelerateInterpolator());// 減速 // 動畫插入器mInvisibleTextView = new MyTextView(context);mInvisibleTextView.setText("0");mInvisibleTextView.setGravity(Gravity.CENTER);mInvisibleTextView.setIncludeFontPadding(false);addView(mInvisibleTextView);mVisibleTextView = new MyTextView(context);mVisibleTextView.setText("0");mVisibleTextView.setGravity(Gravity.CENTER);mVisibleTextView.setIncludeFontPadding(false);addView(mVisibleTextView);mShadePaint.setColor(Color.BLACK);mShadePaint.setStyle(Paint.Style.FILL);mShinePaint.setColor(Color.WHITE);mShinePaint.setStyle(Paint.Style.FILL);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);layoutWidth = MeasureSpec.getSize(widthMeasureSpec);layoutHeight = MeasureSpec.getSize(heightMeasureSpec);setMeasuredDimension(layoutWidth, layoutHeight);}@Overrideprotected void onLayout(boolean changed, int left, int top, int right,int bottom) {super.onLayout(changed, left, top, right, bottom);int count = getChildCount();//將兩個textView放置進去for (int i = 0; i < count; i++) {View child = getChildAt(i);child.layout(0, 0, layoutWidth, layoutHeight);}mTopRect.top = 0;mTopRect.left = 0;mTopRect.right = getWidth();mTopRect.bottom = getHeight() / 2;mBottomRect.top = getHeight() / 2;mBottomRect.left = 0;mBottomRect.right = getWidth();mBottomRect.bottom = getHeight();}@Overrideprotected void dispatchDraw(Canvas canvas) {super.dispatchDraw(canvas);if (!mScroller.isFinished() && mScroller.computeScrollOffset()) {drawTopHalf(canvas);drawBottomHalf(canvas);drawFlipHalf(canvas);postInvalidate();} else {if (isFlipping) {showViews(canvas);}if (mScroller.isFinished() && !mScroller.computeScrollOffset()) {isFlipping = false;}}}/*** 顯示需要顯示的數字* * @param canvas*/private void showViews(Canvas canvas) {String current = mVisibleTextView.getText().toString();String past = mInvisibleTextView.getText().toString();// Log.e("需要顯示的數字--->",current+ "%% "+past);mVisibleTextView.setText(past);mInvisibleTextView.setText(current);// 防止切換抖動drawChild(canvas, mVisibleTextView, 0);}/** 畫下半部分 */private void drawBottomHalf(Canvas canvas) {canvas.save();canvas.clipRect(mBottomRect);View drawView = !isUp2Down ? mInvisibleTextView : mVisibleTextView;drawChild(canvas, drawView, 0);canvas.restore();}/** 畫上半部分 */private void drawTopHalf(Canvas canvas) {canvas.save();canvas.clipRect(mTopRect);View drawView = !isUp2Down ? mVisibleTextView : mInvisibleTextView;drawChild(canvas, drawView, 0);canvas.restore();}/** 畫翻頁部分 */private void drawFlipHalf(Canvas canvas) {canvas.save();mCamera.save();View view = null;float deg = getDeg();if (deg > 90) {canvas.clipRect(!isUp2Down ? mTopRect : mBottomRect);mCamera.rotateX(!isUp2Down ? deg - 180 : -(deg - 180));view = mInvisibleTextView;} else {canvas.clipRect(!isUp2Down ? mBottomRect : mTopRect);mCamera.rotateX(!isUp2Down ? deg : -deg);view = mVisibleTextView;}mCamera.getMatrix(mMatrix);positionMatrix();canvas.concat(mMatrix);if (view != null) {drawChild(canvas, view, 0);}drawFlippingShadeShine(canvas);mCamera.restore();canvas.restore();}private float getDeg() {return mScroller.getCurrY() * 1.0f / layoutHeight * 180;}/** 繪制翻頁時的陽面和陰面 */private void drawFlippingShadeShine(Canvas canvas) {final float degreesFlipped = getDeg();// Log.d(TAG, "deg: " + degreesFlipped);if (degreesFlipped < 90) {final int alpha = getAlpha(degreesFlipped);// Log.d(TAG, "小于90度時的透明度-------------------> " + alpha);mShinePaint.setAlpha(alpha);mShadePaint.setAlpha(alpha);canvas.drawRect(!isUp2Down ? mBottomRect : mTopRect, !isUp2Down ? mShinePaint: mShadePaint);} else {final int alpha = getAlpha(Math.abs(degreesFlipped - 180));// Log.d(TAG, "大于90度時的透明度-------------> " + alpha);mShadePaint.setAlpha(alpha);mShinePaint.setAlpha(alpha);canvas.drawRect(!isUp2Down ? mTopRect : mBottomRect, !isUp2Down ? mShadePaint: mShinePaint);}}private int getAlpha(float degreesFlipped) {return (int) ((degreesFlipped / 90f) * 100);}private void positionMatrix() {mMatrix.preScale(0.25f, 0.25f);mMatrix.postScale(4.0f, 4.0f);mMatrix.preTranslate(-getWidth() / 2, -getHeight() / 2);mMatrix.postTranslate(getWidth() / 2, getHeight() / 2);}/** 初始化隱藏textView顯示的值 */private void initTextView() {int visibleValue = Integer.parseInt(mVisibleTextView.getText().toString());// int invisibleValue = isUp2Down ? visibleValue - 1 : visibleValue + 1;//這里控制是 + 還是 -int invisibleValue = visibleValue - 1;if (invisibleValue < 10) {mInvisibleTextView.setText("0" + invisibleValue);} else {mInvisibleTextView.setText("" + invisibleValue);}}/**** @param isUp2Down* 方向標識 true: 從上往下翻 , false: 從下往上翻*/public void setFlipDirection(boolean isUp2Down) {this.isUp2Down = isUp2Down;}public void smoothFlip() {//Log.e(TAG, "翻動 ");initTextView();isFlipping = true;mScroller.startScroll(0, 0, 0, layoutHeight, 700);postInvalidate();}public TextView getmVisibleTextView() {return mVisibleTextView;}public TextView getmInvisibleTextView() {return mInvisibleTextView;}public boolean isFlipping() {return isFlipping && !mScroller.isFinished()&& mScroller.computeScrollOffset();}/*** 獲取當前View值* * @return*/public int getCurrentValue() {return Integer.parseInt(mVisibleTextView.getText().toString());}/*** 設置view的時間值* @param textTime*/public void setClockTime(String textTime) {mVisibleTextView.setText(textTime);}/*** 設置時間數字的背景* @param drawable*/public void setClockBackground(Drawable drawable) {mVisibleTextView.setBackground(drawable);mInvisibleTextView.setBackground(drawable);}/*** 設置時間數字的顏色* @param color*/public void setClockTextColor(int color) {mVisibleTextView.setTextColor(color);mInvisibleTextView.setTextColor(color);}/*** 設置時間數字的大小* @param size*/public void setClockTextSize(float size){mVisibleTextView.setTextSize(size);mInvisibleTextView.setTextSize(size);}}

MyClockView.java

import android.content.Context; import android.content.res.TypedArray; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Handler; import android.util.AttributeSet; import android.util.Log; import android.view.Gravity; import android.view.ViewGroup; import android.widget.RelativeLayout; import android.widget.TextView;public class MyClockView extends RelativeLayout {private float dayTextSize, hourTextSize, minTextSize, secTextSize;private FlipClockView dayTextView, hourTextView, minTextView, secTextView;private TextView dTextView, hTextView, mTextView, sTextView;private LayoutParams dayLayoutParams, hourLayoutParams, minLayoutParams,secLayoutParams;private DownCountTimerListener mDownCountTimerListener;private Handler mHandler;private Runnable mRunnable;private long totalTime = 0;private boolean isRunning = true;private int screenW;private long outNumber=0;//超過的最大計數的時間(秒數)public MyClockView(Context context, AttributeSet attrs) {super(context, attrs);initView(context, attrs);}public MyClockView(Context context) {this(context, null);}public MyClockView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);initView(context, attrs);}public void initView(Context context, AttributeSet attrs) {screenW=getScreenWidth(context);TypedArray tArray = context.obtainStyledAttributes(attrs,R.styleable.MyClock);dayTextSize = tArray.getDimension(R.styleable.MyClock_dayTextSize, 26f);hourTextSize = tArray.getDimension(R.styleable.MyClock_hourTextSize,26f);minTextSize = tArray.getDimension(R.styleable.MyClock_minTextSize, 26f);secTextSize = tArray.getDimension(R.styleable.MyClock_secTextSize, 26f);int dayTextColor = tArray.getColor(R.styleable.MyClock_dayTextColor,0xffffff);int hourTextColor = tArray.getColor(R.styleable.MyClock_hourTextColor,0xffffff);int minTextColor = tArray.getColor(R.styleable.MyClock_minTextColor,0xffffff);int secTextColor = tArray.getColor(R.styleable.MyClock_secTextColor,0xffffff);Drawable dayTextBg = tArray.getDrawable(R.styleable.MyClock_dayTextBackground);Drawable hourTextBg = tArray.getDrawable(R.styleable.MyClock_hourTextBackground);Drawable minTextBg = tArray.getDrawable(R.styleable.MyClock_minTextBackground);Drawable secTextBg = tArray.getDrawable(R.styleable.MyClock_secTextBackground);tArray.recycle();dayTextView = new FlipClockView(context);hourTextView = new FlipClockView(context);minTextView = new FlipClockView(context);secTextView = new FlipClockView(context);dayTextView.setId(R.id.dayTextView);hourTextView.setId(R.id.hourTextView);minTextView.setId(R.id.minTextView);secTextView.setId(R.id.secTextView);dTextView = new TextView(context);hTextView = new TextView(context);mTextView = new TextView(context);sTextView = new TextView(context);dTextView.setText("DAYS");hTextView.setText("HOURS");mTextView.setText("MINUTES");sTextView.setText("SECONDS");dTextView.setTextColor(Color.parseColor("#ffffff"));hTextView.setTextColor(Color.parseColor("#ffffff"));mTextView.setTextColor(Color.parseColor("#ffffff"));sTextView.setTextColor(Color.parseColor("#ffffff"));dTextView.setTextSize(10f);hTextView.setTextSize(10f);mTextView.setTextSize(10f);sTextView.setTextSize(10f);dayTextView.setClockBackground(dayTextBg);dayTextView.setClockTextSize(dayTextSize);dayTextView.setClockTextColor(dayTextColor);hourTextView.setClockBackground(hourTextBg);hourTextView.setClockTextSize(dayTextSize);hourTextView.setClockTextColor(hourTextColor);minTextView.setClockBackground(minTextBg);minTextView.setClockTextSize(dayTextSize);minTextView.setClockTextColor(minTextColor);secTextView.setClockBackground(secTextBg);secTextView.setClockTextSize(dayTextSize);secTextView.setClockTextColor(secTextColor);//secTextView.setFlipDirection(false);//Log.e("---->","屏幕的寬"+screenW);int viewWidth=(int)(screenW*0.14);int viewMargin=(int)(screenW*0.05);dTextView.setWidth(viewWidth);dTextView.setGravity(Gravity.CENTER);hTextView.setWidth(viewWidth);hTextView.setGravity(Gravity.CENTER);mTextView.setWidth(viewWidth);mTextView.setGravity(Gravity.CENTER);sTextView.setWidth(viewWidth);sTextView.setGravity(Gravity.CENTER);dayLayoutParams = new LayoutParams(viewWidth,viewWidth);dayLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, TRUE);dayLayoutParams.setMargins(0, 60, 0, 0);addView(dayTextView, dayLayoutParams);LayoutParams dLayoutParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);dLayoutParams.addRule(RelativeLayout.BELOW, R.id.dayTextView);dLayoutParams.addRule(RelativeLayout.ALIGN_LEFT, R.id.dayTextView);dLayoutParams.setMargins(0, 5, 0, 60);addView(dTextView, dLayoutParams);hourLayoutParams = new LayoutParams(viewWidth,viewWidth);hourLayoutParams.addRule(RelativeLayout.RIGHT_OF, R.id.dayTextView);hourLayoutParams.setMargins(viewMargin, 60, viewMargin, 0);addView(hourTextView, hourLayoutParams);LayoutParams hLayoutParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);hLayoutParams.addRule(RelativeLayout.ALIGN_LEFT, R.id.hourTextView);hLayoutParams.addRule(RelativeLayout.BELOW, R.id.hourTextView);hLayoutParams.setMargins(0, 5, 0, 0);addView(hTextView, hLayoutParams);minLayoutParams = new LayoutParams(viewWidth,viewWidth);minLayoutParams.setMargins(0, 60, 0, 0);minLayoutParams.addRule(RelativeLayout.RIGHT_OF, R.id.hourTextView);addView(minTextView, minLayoutParams);LayoutParams mLayoutParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);mLayoutParams.addRule(RelativeLayout.ALIGN_LEFT, R.id.minTextView);mLayoutParams.addRule(RelativeLayout.BELOW, R.id.minTextView);mLayoutParams.setMargins(0, 5, 0, 0);addView(mTextView, mLayoutParams);secLayoutParams = new LayoutParams(viewWidth,viewWidth);secLayoutParams.addRule(RelativeLayout.RIGHT_OF, R.id.minTextView);secLayoutParams.setMargins(viewMargin, 60, 0, 0);addView(secTextView, secLayoutParams);LayoutParams sLayoutParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);sLayoutParams.addRule(RelativeLayout.ALIGN_LEFT, R.id.secTextView);sLayoutParams.addRule(RelativeLayout.BELOW, R.id.secTextView);sLayoutParams.setMargins(0, 5, 0, 0);addView(sTextView, sLayoutParams);dayTextView.setClockTime("00");hourTextView.setClockTime("00");minTextView.setClockTime("00");secTextView.setClockTime("00");mHandler = new Handler();}public interface DownCountTimerListener {void stopDownCountTimer();}/*** 暫停計時*/public void pauseDownCountTimer() {if (mRunnable != null) {mHandler.removeCallbacks(mRunnable);dayTextView.setClockTime("00");hourTextView.setClockTime("00");minTextView.setClockTime("00");secTextView.setClockTime("00");// Log.e("暫停計時", "-=-=-=-=-=");}}public void setDownCountTimerListener(DownCountTimerListener listener) {this.mDownCountTimerListener = listener;}/*** 獲取設置倒計時的總時間* @return*/public long getDownCountTime() {return totalTime;}/*** 設定需要倒計時的總共時間** @param totalDownCountTimes*/public void setDownCountTime(long totalDownCountTimes) {this.totalTime = totalDownCountTimes;pauseDownCountTimer();}/*** 設定倒計時的時間開始時間和結束時間** @param startTime* @param endTime*/public void setDownCountTime(long startTime, long endTime) {this.totalTime = endTime - startTime;pauseDownCountTimer();}/*** 開始倒計時*/public void startDownCountTimer() {isRunning=true;setTime2Text(getDownCountTime());mRunnable = new Runnable() {@Overridepublic void run() {int i=secTextView.getCurrentValue();// Log.e("sec時間----->",i + "");outNumber--;if (outNumber<=0) {if (i > 0) {secTextView.smoothFlip();} else {int j = getClockMinValue();j--;if (j >= 0 && i == 0) {//Log.e("分鐘時間----->", j + "");minTextView.smoothFlip();secTextView.setClockTime("60");secTextView.smoothFlip();} else {int k = getClockHourValue();k--;if (k >= 0 && j < 0 && i == 0) {hourTextView.smoothFlip();minTextView.setClockTime("60");minTextView.smoothFlip();secTextView.setClockTime("60");secTextView.smoothFlip();} else {int d = getClockDayValue();d--;if (d < 0) {// Log.e("時間結束----->", j + " " + i);isRunning = false;if (null != mDownCountTimerListener) {mDownCountTimerListener.stopDownCountTimer();}} else {Log.e("day----->", d + " ");secTextView.setClockTime("60");minTextView.setClockTime("60");hourTextView.setClockTime("24");d++;dayTextView.setClockTime("" + d);secTextView.smoothFlip();minTextView.smoothFlip();hourTextView.smoothFlip();dayTextView.smoothFlip();}}}}}if (isRunning) {mHandler.postDelayed(this, 1000);} else {mHandler.removeCallbacks(this);}}};mHandler.postDelayed(mRunnable, 1000);}/*** 獲取倒計時剩余的時間,數組的4個元素分別代表剩余的天、時、分、秒* @return*/public String[] getClockRestTime(){String[] restTime=new String[4];restTime[0]=String.valueOf(getClockDayValue());restTime[1]=String.valueOf(getClockHourValue());restTime[2]=String.valueOf(getClockMinValue());restTime[3]=String.valueOf(getClockSecValue());return restTime;}public int getScreenWidth(Context mContext) {return mContext.getResources().getDisplayMetrics().widthPixels;}/*** 根據給定的時間轉換為 天、時、分** @param startTime*/private void setTime2Text(long startTime) {int ss = 1000;int mi = ss * 60;int hh = mi * 60;int dd = hh * 24;long day = startTime / dd;long hour = (startTime - day * dd) / hh;long minute = (startTime - day * dd - hour * hh) / mi;long second = (startTime - day * dd - hour * hh - minute * mi) / ss;String strDay = day < 10 ? "0" + day : "" + day; // 天String strHour = hour < 10 ? "0" + hour : "" + hour;// 小時String strMinute = minute < 10 ? "0" + minute : "" + minute;// 分鐘String strSecond = second < 10 ? "0" + second : "" + second;// 秒Log.e("時間----》", strDay+" "+strHour +" "+strMinute+" "+strSecond);if (Integer.parseInt(strDay) >= 100) {dayTextView.setClockTime("99");hourTextView.setClockTime("23");minTextView.setClockTime("59");secTextView.getmInvisibleTextView().setText("59");secTextView.getmVisibleTextView().setText("59");outNumber=((startTime)-1000L*60L*60L*24L*100L)/1000L;// Log.e("多余的時間----》",outNumber+"");} else {dayTextView.setClockTime(strDay);hourTextView.setClockTime(strHour);minTextView.setClockTime(strMinute);secTextView.getmVisibleTextView().setText(strSecond);secTextView.getmInvisibleTextView().setText(strSecond);outNumber=0;}}public int getClockDayValue() {return dayTextView.getCurrentValue();}public int getClockHourValue() {return hourTextView.getCurrentValue();}public int getClockMinValue() {return minTextView.getCurrentValue();}public int getClockSecValue(){return secTextView.getCurrentValue();}} MyTextView.java
import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.widget.TextView;public class MyTextView extends TextView {Paint mPaint;public MyTextView(Context context, AttributeSet attrs) {super(context, attrs);initPaint();}public MyTextView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);initPaint();}public MyTextView(Context context) {this(context, null);initPaint();}private void initPaint() {mPaint=new Paint(Paint.ANTI_ALIAS_FLAG);mPaint.setStyle(Paint.Style.FILL);mPaint.setColor(Color.BLACK);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawRect(0,getMeasuredHeight()/2-1,getMeasuredWidth(),getMeasuredHeight()/2+1, mPaint);}}
MainActivity.java MainActivity.java package com.example.timeticker;import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.Toast;public class MainActivity extends AppCompatActivity implements View.OnClickListener, MyClockView.DownCountTimerListener {Button mBtn;private MyClockView myClockView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.clock_view_activity);mBtn = (Button) findViewById(R.id.button1);mBtn.setOnClickListener(this);myClockView = (MyClockView) findViewById(R.id.clockView);myClockView.setDownCountTimerListener(this);}@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.button1:myClockView.setDownCountTime(1000L * 60L + 1000L * 12L);myClockView.startDownCountTimer();break;default:break;}}@Overridepublic void stopDownCountTimer() {Toast.makeText(this,"結束了",Toast.LENGTH_SHORT).show();} }


PS.上面的效果,可能在某些手機上翻轉時的效果會出現閃爍的現象,是因為手機的硬件加速功能開啟了的原因,為此。你需要在初始化view的時候關閉硬件加速。

myClockView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
還有,有些手機上適配效果不好,可以在布局文件里添加padding的屬性,保證控件都在所包裹的父布局中。

好了,上面應該比較清楚了,有不清楚的,可以留言,歡迎探討。
喜歡本文的,點個贊。


點擊下載Demo

總結

以上是生活随笔為你收集整理的Android自定义控件之3D上下翻页效果的倒计时控件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品久久久久三级 | 久久特级毛片 | 六月丁香综合 | 精品999久久久 | 亚洲黄色免费在线看 | 日韩亚洲精品电影 | wwwwww国产 | 日韩av一卡二卡三卡 | 91久久精品一区二区二区 | 最近中文字幕第一页 | 国产成人精品一区二区三区网站观看 | 91av成人 | 午夜精品久久久久久久久久久久久久 | 日韩91av | av女优中文字幕在线观看 | 婷婷网站天天婷婷网站 | 精品成人a区在线观看 | 五月天天色| 开心色婷婷 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 国产黄a三级 | 精品国产乱码久久久久久天美 | 在线观看黄色大片 | 国产一级二级在线 | 国产精品久久99综合免费观看尤物 | 久久手机视频 | 欧美91成人网 | 日韩色中色 | 一区二区伦理电影 | 免费高清国产 | 欧美精品久久99 | 日韩成人av在线 | 免费看污污视频的网站 | 国产一区二区午夜 | 欧美日韩精品免费观看视频 | 欧美黑人巨大xxxxx | 亚洲精品自在在线观看 | 亚洲天堂va | 欧美极品xxx | 国内综合精品午夜久久资源 | 欧美一区二区三区激情视频 | 日韩免费电影在线观看 | 91av手机在线观看 | 黄色三级视频片 | 91av在线播放| 久久免费成人 | 91看片在线免费观看 | 国产女v资源在线观看 | 欧美大片大全 | 成人福利在线播放 | 96精品高清视频在线观看软件特色 | 性色av免费在线观看 | 日韩免费一区二区在线观看 | 热久久99这里有精品 | 国产精品91一区 | 亚洲黄色在线观看 | av免费网站观看 | 久久久91精品国产 | 男女激情片在线观看 | 天天干天天操天天爱 | 五月婷婷操| 久久在草| 麻豆视频国产精品 | www夜夜操 | 中文字幕第 | 97精品国产97久久久久久免费 | 8x成人免费视频 | 国产精国产精品 | 久久久私人影院 | 国产视频综合在线 | 精品久久精品 | av一区在线播放 | 在线观看视频在线 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 免费午夜网站 | 午夜视频在线观看一区二区 | 91成人免费在线视频 | 亚洲免费黄色 | 久久精品79国产精品 | 亚洲狠狠| 亚洲激情久久 | 超碰人人av| 久草在在线| 天堂在线成人 | 精品国产精品国产偷麻豆 | 国产主播大尺度精品福利免费 | 青青草华人在线视频 | 日韩深夜在线观看 | 九九久久影院 | 天天爽综合网 | 一区二区三区在线视频111 | 国产中文字幕视频在线 | 亚洲干视频在线观看 | 欧美国产大片 | 天天操天天吃 | 97在线观看视频 | 精品在线小视频 | 国产精品福利无圣光在线一区 | 欧美在线视频一区二区三区 | 51久久夜色精品国产麻豆 | 成 人 黄 色 片 在线播放 | 欧美一级小视频 | 娇妻呻吟一区二区三区 | 成人三级网站在线观看 | 久草在线免费新视频 | 精品欧美一区二区精品久久 | 国产精品日韩久久久久 | 成人欧美日韩国产 | 久久国产精品影视 | 综合天天久久 | 天天综合久久综合 | 麻豆视频观看 | 午夜电影中文字幕 | 成人免费网视频 | 国产精品女同一区二区三区久久夜 | 亚洲视频播放 | 亚洲精品视频网站在线观看 | 探花视频网站 | 日本在线观看中文字幕 | 中文超碰字幕 | 成人一级电影在线观看 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 婷婷色综合色 | 在线日韩中文 | 亚洲精品视频久久 | 久在线| 久草99| 狠狠操在线| 天天综合色 | 91一区二区三区久久久久国产乱 | 久久久久婷 | 国产在线视频一区二区 | 国产成人av一区二区三区在线观看 | 久久综合给合久久狠狠色 | 日韩精选在线 | 人人玩人人添人人澡超碰 | 黄网站免费看 | 九色视频网 | 看污网站| 黄色中文字幕在线 | 国产最新91 | 天天舔夜夜操 | 97超碰香蕉| 久久亚洲综合色 | 国产午夜视频在线观看 | 日日天天干 | 91在线你懂的 | 久久y | 黄色的视频 | 97色噜噜| 天天操导航 | 亚洲一级片免费观看 | av在线a| 亚州精品天堂中文字幕 | 久久国产精彩视频 | 天天视频亚洲 | 国产一二三四在线观看视频 | 2023亚洲精品国偷拍自产在线 | 一级片视频在线 | 日韩v欧美v日本v亚洲v国产v | 国产精品毛片一区 | 青青色影院 | 激情久久一区二区三区 | 国产999精品久久久久久绿帽 | 国产高清免费观看 | 免费看毛片在线 | 97色婷婷成人综合在线观看 | 亚洲成 人精品 | 欧美日韩在线观看不卡 | 欧美日一级片 | 天天干天天射天天插 | 久久精品综合一区 | 国产视频在线免费观看 | 亚洲视频www| 天天天天色综合 | 国产 日韩 在线 亚洲 字幕 中文 | 超级碰视频 | 在线观看中文字幕第一页 | 亚洲观看黄色网 | 成人黄色毛片 | 激情五月综合 | 日韩免费中文 | 伊人热| 国产999精品 | 午夜精品久久一牛影视 | 在线观看视频一区二区 | 国产精品久久久久影院日本 | 午夜色大片在线观看 | 超碰97国产精品人人cao | 精品国产一区二区三区久久久蜜月 | 99精品视频中文字幕 | 亚洲精品在线国产 | 国产精品久久久亚洲 | 精品视频亚洲 | 久久这里 | 国产亚洲久久 | 啪啪免费试看 | ww视频在线观看 | 天天插天天狠天天透 | 视频成人免费 | 91在线免费观看网站 | 99国产精品免费网站 | 欧美一级欧美一级 | 国产精品 久久 | 成人理论在线观看 | 亚洲午夜久久久久久久久 | 国产综合福利在线 | 一级片视频免费观看 | 日韩精品免费在线 | 午夜精品影院 | 激情偷乱人伦小说视频在线观看 | 中文字幕在线观看不卡 | av在线亚洲天堂 | 久久精品国产精品亚洲精品 | 日本久久久久久久久 | 久久夜色精品国产欧美乱极品 | 伊人小视频 | 久久激情综合网 | 69av视频在线观看 | 欧美日本三级 | 久久国产精品影视 | 91高清不卡 | 激情视频一区二区三区 | 午夜精品久久久久久99热明星 | 麻豆传媒视频在线免费观看 | 在线精品国产 | 波多野结衣在线播放视频 | 日韩精品中文字幕一区二区 | 亚洲欧洲一级 | 国产精品入口麻豆www | 黄网站色 | 成人久久18免费网站麻豆 | 久久久精品综合 | 国产区精品在线观看 | 人人澡人人澡人人 | 91九色蝌蚪国产 | 在线观看视频在线观看 | 亚洲女人av | 国产一级二级三级在线观看 | 日韩有码在线观看视频 | 国产一区在线免费观看视频 | 亚洲精品美女在线 | 国产日韩高清在线 | 免费成人在线观看视频 | 日韩电影一区二区在线观看 | 久久五月婷婷丁香社区 | av高清免费 | 日韩视频欧美视频 | 欧美二区三区91 | 亚洲日韩中文字幕在线播放 | 欧美91在线| 99视频| 国产一区免费视频 | 成年人国产精品 | 91九色网址| a级免费观看 | 97爱| 免费观看一级特黄欧美大片 | 91亚洲精品国产 | 91视频91自拍 | 国产一级性生活 | 国产精品嫩草影视久久久 | 丁香婷五月 | 曰本三级在线 | 91成人精品一区在线播放69 | 国产综合精品一区二区三区 | 久久久久激情电影 | 日韩专区视频 | 久久97久久97精品免视看 | 91精品国产综合久久婷婷香蕉 | 亚洲免费色 | 天天躁天天狠天天透 | 亚洲日b视频 | 美女在线免费观看视频 | 日韩av在线小说 | 福利片视频区 | 国产精品免费久久久久久久久久中文 | 国产精品毛片一区二区三区 | 特级西西444www大精品视频免费看 | 国产特级毛片aaaaaa | 日韩成人中文字幕 | 久久中文精品视频 | 久久久天天操 | 欧美黄色成人 | 日韩三级视频在线看 | 九九涩涩av台湾日本热热 | 国产精品久久久久久久久久99 | 九九热只有这里有精品 | 一区二区三区久久 | 人人爽人人乐 | 日本精品久久久久中文字幕 | 国产麻豆视频网站 | 欧美一级久久 | 中文资源在线观看 | 国产高清精品在线 | 中文字幕在线观看免费 | 黄色av网站在线免费观看 | 色综合久久88色综合天天人守婷 | 特级毛片爽www免费版 | 国产亚洲高清视频 | 色婷婷av一区 | 国产精品va在线播放 | 久久福利 | 欧美激情xxxx性bbbb | 精品在线免费观看 | 亚洲精品国产精品国自产 | 国产精品1区2区3区在线观看 | 久久久久麻豆v国产 | 天天色天天骑天天射 | av在线免费观看不卡 | 男女精品久久 | 91香蕉久久| 亚洲资源在线 | 96国产在线 | 国产精品一区久久久久 | 丁香六月天婷婷 | 亚洲国产精品电影在线观看 | 91久久国产自产拍夜夜嗨 | 成人免费一级 | 国产欧美最新羞羞视频在线观看 | 在线看日韩av | 激情欧美xxxx | 国产亚洲精品美女 | 欧美性生活久久 | 欧美日韩在线观看一区二区 | 国产二区视频在线 | 人人射人人插 | 国产精品免费久久久久久久久久中文 | 一区二区三区四区五区在线视频 | 黄色片网站av | 99久久www免费| 91亚洲精品在线观看 | 中文在线字幕免 | 天天干天天干天天干天天干天天干天天干 | 亚洲永久精品视频 | a视频在线 | av片子在线观看 | 国产一区网址 | 久久影院中文字幕 | 国产在线国偷精品产拍 | 91精品在线免费 | 久久午夜影视 | 国产综合在线观看视频 | www.综合网.com | 九色视频网 | 日韩欧美精品一区 | 国产精品高潮呻吟久久久久 | 日韩精品久久一区二区 | 国产99久久精品一区二区300 | 高清国产在线一区 | 狠狠狠色狠狠色综合 | 久久精品一区八戒影视 | 色婷婷九月 | 国产亚洲综合精品 | 亚洲综合色丁香婷婷六月图片 | 开心激情五月网 | 国产日女人 | 成年人免费在线观看 | 精品色综合 | 激情五月婷婷 | 91在线视频网址 | 色资源网在线观看 | 日韩高清观看 | 国产一区欧美在线 | 在线电影日韩 | 久久综合狠狠综合 | 91麻豆传媒 | 九九久久国产精品 | 九九久久免费视频 | 人人网av | 狠狠色丁香婷婷 | 国产日韩欧美视频在线观看 | 久久久久久草 | 国产精品99久久免费黑人 | 黄色电影小说 | 免费日p视频 | 日韩av成人免费看 | 91精品国产成人www | 最近最新中文字幕视频 | 男女激情麻豆 | 国产一级性生活 | 亚洲免费视频观看 | 91一区啪爱嗯打偷拍欧美 | 亚洲无线视频 | 色噜噜在线观看 | 久草视频首页 | 在线观看色网 | 亚洲精品视频在线播放 | 手机在线黄色网址 | 久草电影在线观看 | 成av在线| 国产一级精品视频 | 久久久人人爽 | 永久免费精品视频网站 | 久久久久久高潮国产精品视 | 高清久久久久久 | 成人免费大片黄在线播放 | 久久婷五月 | 国产一级一片免费播放放 | 国内免费久久久久久久久久久 | 日韩欧美综合在线视频 | av888.com| 中文字幕首页 | 久久久影院官网 | 日韩xxxbbb | 中文字幕资源网在线观看 | 在线免费中文字幕 | 丁香久久久 | 日韩一二三区不卡 | 国产高清一 | 午夜视频亚洲 | 天天插天天射 | 国产中文字幕视频在线 | 国产男男gay做爰 | 天天拍天天爽 | 精品理论片 | 人人要人人澡人人爽人人dvd | 国产视频99 | 欧美激情精品一区 | 日韩v在线91成人自拍 | 亚洲国产一区在线观看 | 亚洲精品短视频 | 在线观看亚洲视频 | av日韩不卡 | 日韩免费视频线观看 | 国产亚洲成人网 | 欧美另类tv | 久久国产欧美日韩精品 | 色综合 久久精品 | 黄色影院在线免费观看 | 亚洲女欲精品久久久久久久18 | av色综合| 在线中文字幕一区二区 | 91完整版在线观看 | 日韩电影在线观看一区二区三区 | 99国产精品久久久久久久久久 | 黄网站app在线观看免费视频 | 丝袜少妇在线 | 在线免费观看羞羞视频 | 西西444www大胆高清视频 | 四虎精品成人免费网站 | 波多野结衣在线播放一区 | av再线观看 | 在线免费观看视频 | 81国产精品久久久久久久久久 | 久久久精品 | 精品久久久影院 | 91女子私密保健养生少妇 | 免费高清在线观看成人 | 国产亚洲片 | 九月婷婷色| 日本中文字幕在线免费观看 | 国产亚洲视频在线观看 | 国产女人40精品一区毛片视频 | 99精品视频在线免费观看 | 欧美激情综合五月色丁香 | 国产视频在线观看一区二区 | 五月天激情婷婷 | 久久激情视频免费观看 | 五月婷婷六月综合 | 日韩av一区二区三区 | 97综合网| 久久久久日本精品一区二区三区 | 中文字幕一区二区三区视频 | 91视频在线自拍 | 亚洲精品中文在线观看 | 国产精品久久久久久久久久直播 | 日韩午夜一级片 | 久久97久久 | 成人免费xxxxxx视频 | 三级免费黄 | 免费91麻豆精品国产自产在线观看 | 午夜12点| 911国产在线观看 | 国产美腿白丝袜足在线av | 国产极品尤物在线 | a视频免费看 | 高清精品在线 | 九九在线视频 | 美女在线免费视频 | 91亚洲在线观看 | 91色网址 | 国产精品18久久久久vr手机版特色 | 狠狠综合久久av | 欧美另类美少妇69xxxx | 996久久国产精品线观看 | 亚洲精品综合欧美二区变态 | 成人免费视频免费观看 | 中文字幕在线观看第三页 | 99久久99久久免费精品蜜臀 | 婷婷电影在线观看 | 99爱在线| 免费看特级毛片 | 日韩欧美精品在线视频 | 亚洲国产免费看 | 日韩欧美在线高清 | 97色se | 97精品国产97久久久久久春色 | 日韩中文字幕亚洲一区二区va在线 | 婷婷丁香激情综合 | 久久综合桃花 | 久久久久久综合 | 973理论片235影院9 | 国产成人精品久久二区二区 | 国产在线观看h | 色婷婷激情五月 | 免费看十八岁美女 | 久久久久成人精品免费播放动漫 | 国产精品99久久久久久有的能看 | 国产精品欧美久久久久无广告 | 九九精品视频在线观看 | 天天爽夜夜爽人人爽曰av | 国产精品婷婷午夜在线观看 | 麻豆传媒在线免费看 | 亚洲撸撸| 91人网站| 久久久午夜剧场 | 免费一级片在线观看 | 亚洲狠狠操 | 黄色软件在线观看免费 | 日韩国产精品一区 | 在线精品一区二区 | www.97视频| 免费国产亚洲视频 | 久久一区二区免费视频 | 人人干天天射 | 福利视频入口 | 国产又黄又猛又粗 | 婷婷中文在线 | 成人a级黄色片 | 中文字幕免| 欧美精品久久久久久久 | 亚洲视频资源在线 | 狠狠久久婷婷 | 天天综合亚洲 | wwxxx日本| 欧美日韩视频网站 | 日韩视频中文字幕 | 天天躁日日躁狠狠躁 | 韩日精品视频 | 免费观看性生交 | a级片韩国 | 国产精品久久久久久爽爽爽 | 首页国产精品 | 久久五月天婷婷 | 久久九九国产视频 | 波多野结衣电影一区二区三区 | 中文字幕第| 伊人久久在线观看 | 欧美韩国在线 | 国产999精品 | 久久久久国| 中文字幕在线免费观看 | 久久这里精品视频 | 黄污网 | 日韩中文字幕91 | 亚洲综合欧美日韩狠狠色 | 丁香六月激情 | 永久免费的av电影 | 久久国产精品99久久人人澡 | 亚洲黄色小说网址 | 在线激情网 | 黄色大全视频 | 在线午夜电影神马影院 | 最近中文字幕视频完整版 | 久久综合色天天久久综合图片 | 午夜a区| 国产男女爽爽爽免费视频 | 伊人色播 | 免费又黄又爽视频 | 亚洲男男gaygay无套同网址 | 久久这里只有精品视频99 | 久久成人国产精品入口 | 欧美大片在线观看一区 | 日韩精品在线观看av | 欧美精品久久久久 | 久久久久久麻豆 | 免费看国产精品 | 久久久久女教师免费一区 | a级国产乱理论片在线观看 特级毛片在线观看 | 日本久久高清视频 | av网址aaa| 国产裸体视频网站 | 久久久久久久免费观看 | 欧美日韩在线精品 | 久久久精品国产一区二区 | 欧美va天堂在线电影 | 欧美精品一级视频 | 99久精品视频 | 99久久9 | 久久久久国产精品免费免费搜索 | 日韩免费福利 | 亚洲精品视频免费 | 在线观看黄色 | 99电影| 97在线视频免费播放 | 久久三级视频 | 在线观看日本高清mv视频 | av在线超碰 | 欧美日韩久久 | 不卡av在线免费观看 | 国产又粗又长又硬免费视频 | 国产美女免费观看 | 五月天婷亚洲天综合网鲁鲁鲁 | 亚洲精品高清视频在线观看 | 亚欧洲精品视频在线观看 | 亚洲精品在线观看av | 四虎亚洲精品 | 黄色av高清| 一区二区中文字幕在线 | 日韩一区二区三区视频在线 | 高清一区二区 | 国产在线探花 | www.伊人色.com| 天天干夜夜爽 | 播五月婷婷 | 日韩av不卡在线观看 | 黄色精品国产 | 亚洲禁18久人片 | 在线视频区 | 夜夜爽www | 日韩va欧美va亚洲va久久 | 欧美资源 | 最近2019中文免费高清视频观看www99 | 国产91精品久久久久久 | 99久久国产免费,99久久国产免费大片 | 天天干天天搞天天射 | 狠狠干夜夜操 | 中文字幕精品www乱入免费视频 | 国产区在线看 | 超碰97中文 | 久久99国产精品二区护士 | 九九爱免费视频 | 国产精品久久久久久久久久久杏吧 | 91精品国产欧美一区二区 | 波多野结衣资源 | 黄色一级动作片 | 91精品国产一区二区在线观看 | 久久黄色网页 | av日韩精品 | 一区二区精品在线 | 国产一级黄| 亚洲一区免费在线 | 成人免费视频在线观看 | 欧美日韩精品影院 | 精品国产激情 | 欧美贵妇性狂欢 | 蜜桃视频精品 | 成人一区二区在线 | 日本高清免费中文字幕 | 婷婷中文字幕在线观看 | 精品99在线 | 91黄色免费看 | 久久久高清免费视频 | 麻花传媒mv免费观看 | 99热在| 日本精品视频一区 | 日本女人b | 国产成人一二片 | 久久精品视频观看 | 日日综合 | 天天插天天狠 | 中文字幕在线观看网址 | 黄色大片免费播放 | 午夜av免费在线观看 | 波多野结衣久久精品 | 久久论理 | 最新成人av| 成全在线视频免费观看 | 日日添夜夜添 | 国产高清专区 | 激情丁香综合五月 | 午夜精品一区二区三区在线 | 久草在线观看 | 在线免费观看视频 | 人人干在线 | www.黄色片网站 | 国产精品成人在线观看 | 狠狠狠狠干 | 精品国产成人在线影院 | 国产香蕉97碰碰碰视频在线观看 | 精品国产人成亚洲区 | 国产亚洲精品久久久久久大师 | 国产一区精品在线观看 | 久久激情精品 | 91福利视频一区 | 97超在线| 国产午夜在线观看视频 | 国产高清视频色在线www | 国产一区二区不卡视频 | av在线免费网站 | 亚洲综合在线一区二区三区 | 欧美日韩视频免费看 | a天堂最新版中文在线地址 久久99久久精品国产 | 日韩在线播放视频 | 中文字幕a在线 | 国产又粗又猛又黄又爽 | 色婷婷免费视频 | www久久 | 97精品在线视频 | 在线观看视频福利 | 欧美久久久久久久久久久久久 | 狠狠亚洲 | 日日夜夜天天久久 | 深夜福利视频在线观看 | 国产精品久久久久久久久久不蜜月 | 尤物97国产精品久久精品国产 | 97精品视频在线 | 99免费观看视频 | 欧美日韩国内在线 | 国产精品久久久久久久久久新婚 | 成年人电影毛片 | 欧美亚洲另类在线视频 | 欧美福利网址 | 日韩三级久久 | 日本性生活免费看 | 日韩理论电影网 | 精品一区电影国产 | 久久久午夜视频 | 日本中文字幕电影在线免费观看 | 又黄又爽又湿又无遮挡的在线视频 | 久久99在线观看 | 国产成人亚洲精品自产在线 | 欧美91在线 | 日本韩国在线不卡 | 国产日韩精品一区二区在线观看播放 | 热久久视久久精品18亚洲精品 | 国产福利不卡视频 | 国产在线超碰 | 欧美a√大片 | 欧美成人精品欧美一级乱黄 | 91视频麻豆 | 午夜国产一区 | 色综合久久网 | 国产精品久久在线观看 | 99精品视频精品精品视频 | 久久久久综合 | 日韩免费看的电影 | 四虎免费在线观看视频 | 日本精品一区二区 | 欧美婷婷色 | 丁香六月久久综合狠狠色 | 成人黄色在线电影 | 日批网站免费观看 | 中文字幕免费高 | 日韩电影精品一区 | 欧美另类tv | 国产a免费 | 丁香婷婷社区 | 久久久久久国产精品免费 | 成人一级免费电影 | 中文字幕在线专区 | 黄色精品一区二区 | 毛片一级免费一级 | 狠狠色丁香婷综合久久 | 九色在线| 久久免费精品国产 | 伊人开心激情 | 日韩精品在线观看av | 精品v亚洲v欧美v高清v | 在线看污网站 | 精品欧美日韩 | 人人插人人舔 | 国产伦理久久精品久久久久_ | 国产区久久 | 国产精品a久久久久 | 久久精品国产亚洲aⅴ | 国产精品99页 | 日本aaa在线观看 | 99视频在线观看一区三区 | 日韩免费在线一区 | 中文字幕中文字幕在线一区 | 成人国产网址 | 色5月婷婷| av成人黄色| 91麻豆精品国产自产 | 日韩免费在线观看 | 天天综合人人 | 在线观看中文字幕dvd播放 | 五月婷婷色丁香 | 久久国产精品一区二区三区 | 97在线观看免费视频 | 国产一级在线视频 | 国产一级片不卡 | 黄色精品国产 | www.色就是色 | 久久久网 | 1024手机基地在线观看 | 中文久草| 在线免费精品视频 | 在线免费观看亚洲视频 | 亚洲视频免费视频 | 日本视频网 | 九九九九免费视频 | 国产精品亚洲片在线播放 | 久久国产亚洲视频 | 99视频在线精品国自产拍免费观看 | 国产剧情在线一区 | 91精品久久久久久久99蜜桃 | 在线激情网 | av中文字幕第一页 | 97色国产 | 久久精品99久久久久久 | 国产成人一区二区三区电影 | 亚洲视频h | 成人网色 | 丁香激情综合久久伊人久久 | 97超碰国产在线 | 亚洲综合日韩在线 | 激情视频一区二区三区 | 亚洲国产精品va在线看黑人动漫 | 国产成人黄色av | 在线观看91视频 | 一级黄网 | 午夜精品久久久久久久99婷婷 | 日韩欧美在线观看 | 公与妇乱理三级xxx 在线观看视频在线观看 | 国产一区在线视频播放 | 亚洲国产成人在线 | 91精品久久久久久久久久久久久 | 色婷婷88av视频一二三区 | 国产九九精品 | 99久久精品日本一区二区免费 | 亚洲精品456在线播放乱码 | 色噜噜在线观看 | 最新中文字幕在线观看视频 | 手机在线中文字幕 | 午夜精品久久久久久久久久久 | 日本久久久精品视频 | 亚洲免费国产视频 | 有码一区二区三区 | 三级黄色a | 丝袜网站在线观看 | 久久久www成人免费精品 | 精品国产一区二区三区免费 | 国产97在线播放 | 婷久久| 九七人人干| 在线 你懂 | 欧美超碰在线 | 日韩精品一区二区三区高清免费 | 久久视频这里只有精品 | 亚洲精品久久久久久久不卡四虎 | 久久天天躁狠狠躁亚洲综合公司 | 精品网站999www | 狠狠狠色丁香婷婷综合久久五月 | 在线看黄色av | 奇米影视777影音先锋 | 亚洲资源一区 | 亚洲精品美女在线观看 | 国产精美视频 | 日韩在线视 | 亚洲国产免费网站 | 午夜在线免费观看 | 伊人精品在线 | 久久草精品 | 成人精品国产 | 亚洲免费在线播放视频 | 久久久精品国产免费观看一区二区 | 国产精品女同一区二区三区久久夜 | 涩涩色亚洲一区 | 最近日韩中文字幕中文 | 亚洲国产精品成人女人久久 | 中国一级特黄毛片大片久久 | 色综合久久88色综合天天 | 欧美精品一区二区三区四区在线 | 视频在线观看一区 | www.久久99 | 黄色不卡av | 狠狠操狠狠插 | 中文字幕专区高清在线观看 | 五月开心婷婷网 | 久久不色 | 日韩欧美视频在线观看免费 | 亚洲 欧美 91| 国产白浆在线观看 | 久久精品国产亚洲精品2020 | 毛片网站在线看 | 国产va饥渴难耐女保洁员在线观看 | 国产精品 中文字幕 亚洲 欧美 | 国产亚洲精品久久久久动 | 色综合久久久久综合99 | 久久久久激情 | 免费中文字幕视频 | 久久视频在线看 | 国产精品色婷婷视频 | 久久视频网址 | 色噜噜日韩精品欧美一区二区 | 网址你懂的在线观看 | 久久999久久 | 91av片| 97国产一区二区 | 五月婷婷中文字幕 | 国产高清不卡 | 欧美日韩一区二区免费在线观看 | 在线观看中文 | 亚洲精品国产精品久久99热 | 欧美精品色| 成人av片免费观看app下载 | 欧美成年网站 | 99久久久国产精品免费99 | a v在线观看 | 国产91电影在线观看 | 中文字幕激情 | 久日精品 | 日韩精品一区二区不卡 | 日本成人中文字幕在线观看 | 亚洲久草在线 | 天天色天天草天天射 | 天堂网在线视频 | 亚洲人成免费网站 | 日本99干网| 日韩亚洲精品电影 | 视频一区在线免费观看 | 中文字幕在线观看视频网站 | 午夜精品一区二区三区视频免费看 | 中文字幕在线观 | 欧美日韩一二三四区 | 狠狠色网 | 四虎成人精品永久免费av | 国产精品久久中文字幕 | 亚洲精品一区二区在线观看 | 国产日韩在线观看一区 | 午夜精品一区二区三区视频免费看 | 在线观看 国产 | 久久久免费精品视频 | 91av在线看 | 精品久久久久_ | 久久精品一二三区白丝高潮 | 久久成人精品视频 | 免费观看福利视频 | 天天色天天干天天 | 色噜噜在线观看视频 | 久久男人影院 | 在线观看www. | 欧美精品一区二区免费 | 国产精品久久久免费看 | 色欧美综合 | 日韩av免费一区 | 国产小视频在线免费观看视频 | 岛国大片免费视频 | 九九免费在线观看 | 热久久最新地址 | aaaaaa毛片| 中文字幕频道 | 国产亚洲精品无 | 在线一二区 | 九九三级毛片 | 国产专区日韩专区 | 午夜婷婷综合 | 丁香婷婷久久 | 91视频久久久久 | 在线观看国产区 | 天天色天天干天天 | 国产精品高清在线 | 在线视频电影 | 久久精品国产精品 | 黄污视频网站大全 | 欧美最猛性xxxxx(亚洲精品) | 黄色一级大片在线免费看国产一 | 色偷偷av男人天堂 | 国产一级免费在线观看 | 夜色成人网 | av成人资源 | 久久精品人人做人人综合老师 | 精品av在线播放 | 玖玖玖精品 | 在线观看视频你懂得 | 欧洲av不卡 | 天天躁日日躁狠狠躁av麻豆 | 国产精品久久久久久久久久久久久久 | 96看片| 黄色一级影院 | 国产精品福利小视频 | 久久99热精品这里久久精品 | 欧美成人播放 | 亚洲日本va午夜在线影院 | 日韩精品视频免费在线观看 | 97色免费视频 | 丝袜足交在线 | 成人久久免费视频 | 国产一区二区在线观看免费 | 九九欧美视频 | 日韩欧美精品在线 | 久久久久久久影院 | 操综合| 久久av免费电影 | 国产伦精品一区二区三区免费 | 日韩精品一卡 | 欧美成人视 | 91av影视 | 日韩在线欧美在线 | 亚洲手机天堂 | 四虎永久国产精品 | 99这里只有精品99 | 亚洲欧洲xxxx| 九九热精品视频在线观看 | 亚洲视频观看 |