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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 自定义控件 按钮滚动选择

發(fā)布時(shí)間:2024/4/15 Android 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 自定义控件 按钮滚动选择 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

效果圖

代碼實(shí)現(xiàn)

package com.demo.ui.view;import android.annotation.TargetApi; import android.content.Context; import android.os.Build; import android.os.Handler; import android.support.v4.content.ContextCompat; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView;import com.demo.R; import com.demo.factory.Axis; import com.demo.utils.LogUtils;import java.util.ArrayList; import java.util.List;public class AirTemperatureView extends RelativeLayout{private Context context;private TextView tv;private TextView tv_middle;// private TextView tv_middle_small;private RelativeLayout Auto_layout;private StringScrollPicker stringScrollPicker;private List<CharSequence> newList;private ImageView img;private ImageView img_left;private ImageView img_right;private int mPosition;private Handler handler = new Handler();/*** 延遲線程,看是否還有下一個(gè)字符輸入*/private Runnable delayRun = new Runnable() {@Overridepublic void run() {stringScrollPicker.setVisibility(INVISIBLE);img.setBackgroundResource(R.drawable.air_temp_bg);tv_middle.setText(newList.get(mPosition));//tv.setText("電池剩余"+newList.get(mPosition)+"%提醒你");tv_middle.setVisibility(VISIBLE);img_right.setVisibility(VISIBLE);img_left.setVisibility(VISIBLE);if(mListener != null) {mListener.setAirTemper(mPosition+18);}LogUtils.e("空調(diào)刷新===","溫度");}};public AirTemperatureView(Context context){super(context);this.context = context;init();}@TargetApi(Build.VERSION_CODES.M)public void init(){super.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, Axis.scaleX(230)));LinearLayout parent = new LinearLayout(context);parent.setOrientation(LinearLayout.VERTICAL);LayoutParams parent_Params = new LayoutParams(LayoutParams.MATCH_PARENT, Axis.scaleX(230));super.addView(parent,parent_Params);RelativeLayout tv_layout = new RelativeLayout(context);LinearLayout.LayoutParams tv_layout_Params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, Axis.scaleX(50));parent.addView(tv_layout,tv_layout_Params);tv = new TextView(context);tv.setText("溫度");tv.setTextSize(Axis.scaleTextSize(36));tv.setTextColor(ContextCompat.getColor(context, R.color.white_70_color));//LayoutParams tv_Params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);tv_Params.addRule(RelativeLayout.CENTER_IN_PARENT);tv_layout.addView(tv,tv_Params);/*** 滑動(dòng)選擇器*/Auto_layout = new RelativeLayout(context);LinearLayout.LayoutParams Auto_layout_Params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, Axis.scaleX(150));Auto_layout_Params.setMargins(0,Axis.scaleX(30),0,0);parent.addView(Auto_layout,Auto_layout_Params);img = new ImageView(context);img.setId(R.id.EleRemindImage);img.setBackgroundResource(R.drawable.air_temp_bg);LayoutParams img_Params = new LayoutParams(Axis.scaleX(150), Axis.scaleX(150));img_Params.addRule(RelativeLayout.CENTER_IN_PARENT);Auto_layout.addView(img,img_Params);img_left = new ImageView(context);img_left.setBackgroundResource(R.drawable.battery_point);LayoutParams img_left_Params = new LayoutParams(Axis.scaleX(14), Axis.scaleX(14));img_left_Params.addRule(RelativeLayout.CENTER_VERTICAL);img_left_Params.addRule(RelativeLayout.LEFT_OF,R.id.EleRemindImage);img_left_Params.setMargins(0,0,Axis.scaleX(134),0);Auto_layout.addView(img_left,img_left_Params);img_right = new ImageView(context);img_right.setBackgroundResource(R.drawable.battery_point);LayoutParams img_right_Params = new LayoutParams(Axis.scaleX(14), Axis.scaleX(14));img_right_Params.addRule(RelativeLayout.CENTER_VERTICAL);img_right_Params.addRule(RelativeLayout.RIGHT_OF,R.id.EleRemindImage);img_right_Params.setMargins(Axis.scaleX(134),0,0,0);Auto_layout.addView(img_right,img_right_Params);tv_middle = new TextView(context);tv_middle.setTextSize(Axis.scaleTextSize(64));tv_middle.setGravity(Gravity.CENTER);tv_middle.setTextColor(0xFFFFFFFF);LayoutParams tv_middle_Params = new LayoutParams(Axis.scaleX(150), Axis.scaleX(150));tv_middle_Params.addRule(RelativeLayout.CENTER_IN_PARENT);Auto_layout.addView(tv_middle,tv_middle_Params);newList = new ArrayList<>();newList.add("18");newList.add("19");newList.add("20");newList.add("21");newList.add("22");newList.add("23");newList.add("24");newList.add("25");newList.add("26");newList.add("27");newList.add("28");newList.add("29");newList.add("30");newList.add("31");newList.add("32");tv_middle.setText(newList.get(0));stringScrollPicker = new StringScrollPicker(context);stringScrollPicker.setHorizontal(true);stringScrollPicker.setVisibleItemCount(5);//可見5個(gè) 第3個(gè) (3-1)個(gè)位中間stringScrollPicker.setCenterPosition(2);stringScrollPicker.setIsCirculation(true);stringScrollPicker.setCanTap(true);stringScrollPicker.setDisallowInterceptTouch(true);LayoutParams stringScrollPicker_Params = new LayoutParams(LayoutParams.MATCH_PARENT,Axis.scaleX(150));Auto_layout.addView(stringScrollPicker,stringScrollPicker_Params);stringScrollPicker.setData(newList);stringScrollPicker.setOnSelectedListener(new ScrollPickerView.OnSelectedListener() {@Overridepublic void onSelected(ScrollPickerView scrollPickerView, final int position) {mPosition = position;handler.postDelayed(delayRun, 1500);}});stringScrollPicker.setOnSelectedListener(new StringScrollPicker.OnDataSelectedListener() {@Overridepublic void DataSelected(CharSequence data) {//tv.setText("電池剩余"+data+"%提醒你");}});stringScrollPicker.setSelectedPosition(0,false);//中間Item位置stringScrollPicker.setVisibility(INVISIBLE);stringScrollPicker.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()){case MotionEvent.ACTION_DOWN:img.setBackgroundResource(R.drawable.battery_btn_p);if(delayRun!=null){handler.removeCallbacks(delayRun);}break;}return false;}});img.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {stringScrollPicker.setVisibility(VISIBLE);tv_middle.setVisibility(INVISIBLE);img_right.setVisibility(INVISIBLE);img_left.setVisibility(INVISIBLE);img.setBackgroundResource(R.drawable.battery_btn_p);}});}/*** 風(fēng)速設(shè)置* @param mPosition*/public void setAirTemperature(int mPosition){/*** 在設(shè)置的時(shí)候不刷新*/if(stringScrollPicker.getVisibility() == INVISIBLE){if(mPosition > 32){mPosition = 32;}stringScrollPicker.setSelectedPosition(mPosition-18,false);tv_middle.setText(newList.get(mPosition-18));}}public TemperatureListener mListener;public void setOnTemperatureListener (TemperatureListener listener) {mListener = listener;}public interface TemperatureListener {void setAirTemper(int temperature);}}

StringScrollPicker 類

package com.demo.ui.view;import android.annotation.TargetApi; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Build; import android.support.annotation.RequiresApi; import android.text.Layout; import android.text.StaticLayout; import android.text.TextPaint; import android.util.AttributeSet; import android.util.Log;import com.demo.factory.Axis; import com.demo.utils.ColorUtil;import java.util.ArrayList; import java.util.Arrays; import java.util.List;public class StringScrollPicker extends ScrollPickerView<CharSequence> {private int mMeasureWidth;private int mMeasureHeight;private TextPaint mPaint; //private int mMinTextSize = Axis.scaleX(64); // 最小的字體private int mMaxTextSize = Axis.scaleX(64); // 最大的字體// 字體漸變顏色private int mStartColor = Color.WHITE; // 中間選中item的顏色private int mEndColor = Color.GRAY; // 上下兩邊的顏色private int mMaxLineWidth = -1; // 最大的行寬,默認(rèn)為itemWidth.超過后文字自動(dòng)換行private Layout.Alignment mAlignment = Layout.Alignment.ALIGN_CENTER; // 對(duì)齊方式,默認(rèn)居中@TargetApi(Build.VERSION_CODES.CUPCAKE)public StringScrollPicker(Context context) {this(context, null);}@RequiresApi(api = Build.VERSION_CODES.CUPCAKE)public StringScrollPicker(Context context, AttributeSet attrs) {this(context, attrs, 0);}@RequiresApi(api = Build.VERSION_CODES.CUPCAKE)public StringScrollPicker(Context context, AttributeSet attrs,int defStyleAttr) {super(context, attrs, defStyleAttr);mPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);mPaint.setStyle(Paint.Style.FILL);mPaint.setColor(Color.BLACK);setData(new ArrayList<CharSequence>(Arrays.asList(new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve"})));}/*** @param startColor 正中間的顏色* @param endColor 上下兩邊的顏色*/public void setColor(int startColor, int endColor) {mStartColor = startColor;mEndColor = endColor;invalidate();}/*** item文字大小** @param minText 沒有被選中時(shí)的最小文字* @param maxText 被選中時(shí)的最大文字*/public void setTextSize(int minText, int maxText) {mMinTextSize = minText;mMaxTextSize = maxText;invalidate();}public int getStartColor() {return mStartColor;}public int getEndColor() {return mEndColor;}public int getMinTextSize() {return mMinTextSize;}public int getMaxTextSize() {return mMaxTextSize;}public int getMaxLineWidth() {return mMaxLineWidth;}/*** 最大的行寬,默認(rèn)為itemWidth.超過后文字自動(dòng)換行* @param maxLineWidth*/public void setMaxLineWidth(int maxLineWidth) {mMaxLineWidth = maxLineWidth;}/*** 最大的行寬,默認(rèn)為itemWidth.超過后文字自動(dòng)換行* @return*/public Layout.Alignment getAlignment() {return mAlignment;}public void setAlignment(Layout.Alignment alignment) {mAlignment = alignment;}@Overrideprotected void onSizeChanged(int w, int h, int oldw, int oldh) {super.onSizeChanged(w, h, oldw, oldh);mMeasureWidth = getMeasuredWidth();mMeasureHeight = getMeasuredHeight();if (mMaxLineWidth < 0) {mMaxLineWidth = getItemWidth();}}@Overridepublic void drawItem(Canvas canvas, List<CharSequence> data, int position, int relative, float moveLength, float top) {CharSequence text = data.get(position);int itemSize = getItemSize();// 設(shè)置文字大小if (relative == -1) { // 上一個(gè)if (moveLength < 0) { // 向上滑動(dòng)mPaint.setTextSize(mMinTextSize);} else { // 向下滑動(dòng)mPaint.setTextSize(mMinTextSize + (mMaxTextSize - mMinTextSize)* moveLength / itemSize);}} else if (relative == 0) { // 中間item,當(dāng)前選中mPaint.setTextSize(mMinTextSize + (mMaxTextSize - mMinTextSize)* (itemSize - Math.abs(moveLength)) / itemSize);} else if (relative == 1) { // 下一個(gè)if (moveLength > 0) { // 向下滑動(dòng)mPaint.setTextSize(mMinTextSize);} else { // 向上滑動(dòng)mPaint.setTextSize(mMinTextSize + (mMaxTextSize - mMinTextSize)* -moveLength / itemSize);}} else { // 其他mPaint.setTextSize(mMinTextSize);}StaticLayout layout = new StaticLayout(text, 0, text.length(), mPaint, mMaxLineWidth, mAlignment, 1.0F, 0.0F, true, null, 0);float x = 0;float y = 0;float lineWidth = layout.getWidth();if (isHorizontal()) { // 水平滾動(dòng)x = top + (getItemWidth() - lineWidth) / 2;y = (getItemHeight() - layout.getHeight()) / 2;} else { // 垂直滾動(dòng)x = (getItemWidth() - lineWidth) / 2;y = top + (getItemHeight() - layout.getHeight()) / 2;}// 計(jì)算漸變顏色computeColor(relative, itemSize, moveLength,text); // canvas.drawText(text, x, y, mPaint);canvas.save();canvas.translate(x, y);layout.draw(canvas);canvas.restore();}/*** 計(jì)算字體顏色,漸變** @param relative  相對(duì)中間item的位置*/private String lastString;private String nowSring;private void computeColor(int relative, int itemSize, float moveLength, CharSequence text) {int color = mEndColor; //  其他默認(rèn)為mEndColorif (relative == -1 || relative == 1) { // 上一個(gè)或下一個(gè)// 處理上一個(gè)item且向上滑動(dòng) 或者 處理下一個(gè)item且向下滑動(dòng) ,顏色為mEndColorif ((relative == -1 && moveLength < 0)|| (relative == 1 && moveLength > 0)) {color = mEndColor;} else { // 計(jì)算漸變的顏色float rate = (itemSize - Math.abs(moveLength))/ itemSize;color = ColorUtil.computeGradientColor(mStartColor, mEndColor, rate);}} else if (relative == 0) { // 中間itemfloat rate = Math.abs(moveLength) / itemSize;color = ColorUtil.computeGradientColor(mStartColor, mEndColor, rate);nowSring = text.toString();if(nowSring != lastString){Log.e("text=====",text+"");if(mListener != null){mListener.DataSelected(text);}}lastString = nowSring;}mPaint.setColor(color);}public interface OnDataSelectedListener {void DataSelected(CharSequence data);}public void setOnSelectedListener(OnDataSelectedListener listener) {mListener = listener;}public OnDataSelectedListener mListener;}

ScrollPickerView 類

package com.demo.ui.view;import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; import android.annotation.TargetApi; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Build; import android.support.annotation.RequiresApi; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; import android.view.ViewParent; import android.view.animation.Interpolator; import android.widget.Scroller;import com.demo.R; import com.demo.utils.LogUtils;import java.util.ArrayList; import java.util.List;/*** 滾動(dòng)選擇器,帶慣性滑動(dòng)*/ public abstract class ScrollPickerView<T> extends View {private int mVisibleItemCount = 3; // 可見的item數(shù)量private boolean mIsInertiaScroll = true; // 快速滑動(dòng)時(shí)是否慣性滾動(dòng)一段距離,默認(rèn)開啟private boolean mIsCirculation = true; // 是否循環(huán)滾動(dòng),默認(rèn)開啟/*不允許父組件攔截觸摸事件,設(shè)置為true為不允許攔截,此時(shí)該設(shè)置才生效當(dāng)嵌入到ScrollView等滾動(dòng)組件中,為了使該自定義滾動(dòng)選擇器可以正常工作,請(qǐng)?jiān)O(shè)置為true*/private boolean mDisallowInterceptTouch = false;private int mSelected; // 當(dāng)前選中的item下標(biāo)private int mLastSelected; // 當(dāng)前選中的item下標(biāo)private List<T> mData;private int mItemHeight = 0; // 每個(gè)條目的高度,當(dāng)垂直滾動(dòng)時(shí),高度=mMeasureHeight/mVisibleItemCountprivate int mItemWidth = 0; // 每個(gè)條目的寬度,當(dāng)水平滾動(dòng)時(shí),寬度=mMeasureWidth/mVisibleItemCountprivate int mItemSize; // 當(dāng)垂直滾動(dòng)時(shí),mItemSize = mItemHeight;水平滾動(dòng)時(shí),mItemSize = mItemWidthprivate int mCenterPosition = -1; // 中間item的位置,0<=mCenterPosition<mVisibleItemCount,默認(rèn)為 mVisibleItemCount / 2private int mCenterY; // 中間item的起始坐標(biāo)y(不考慮偏移),當(dāng)垂直滾動(dòng)時(shí),y= mCenterPosition*mItemHeightprivate int mCenterX; // 中間item的起始坐標(biāo)x(不考慮偏移),當(dāng)垂直滾動(dòng)時(shí),x = mCenterPosition*mItemWidthprivate int mCenterPoint; // 當(dāng)垂直滾動(dòng)時(shí),mCenterPoint = mCenterY;水平滾動(dòng)時(shí),mCenterPoint = mCenterXprivate float mLastMoveY; // 觸摸的坐標(biāo)yprivate float mLastMoveX; // 觸摸的坐標(biāo)Xprivate float mMoveLength = 0; // item移動(dòng)長度,負(fù)數(shù)表示向上移動(dòng),正數(shù)表示向下移動(dòng)private GestureDetector mGestureDetector;private OnSelectedListener mListener;private Scroller mScroller;private boolean mIsFling; // 是否正在慣性滑動(dòng)private boolean mIsMovingCenter; // 是否正在滑向中間// 可以把scroller看做模擬的觸屏滑動(dòng)操作,mLastScrollY為上次觸屏滑動(dòng)的坐標(biāo)private int mLastScrollY = 0; // Scroller的坐標(biāo)yprivate int mLastScrollX = 0; // Scroller的坐標(biāo)xprivate boolean mDisallowTouch = false; // 不允許觸摸private Paint mPaint; //private Drawable mCenterItemBackground = null; // 中間選中item的背景色private boolean mCanTap = true; // 單擊切換選項(xiàng)或觸發(fā)點(diǎn)擊監(jiān)聽器private boolean mIsHorizontal = false; // 是否水平滾動(dòng)private boolean mDrawAllItem = false; // 是否繪制每個(gè)item(包括在邊界外的item)@RequiresApi(api = Build.VERSION_CODES.CUPCAKE)public ScrollPickerView(Context context, AttributeSet attrs) {this(context, attrs, 0);}@TargetApi(Build.VERSION_CODES.HONEYCOMB)@RequiresApi(api = Build.VERSION_CODES.CUPCAKE)public ScrollPickerView(Context context, AttributeSet attrs,int defStyleAttr) {super(context, attrs, defStyleAttr);mGestureDetector = new GestureDetector(getContext(),new FlingOnGestureListener());mScroller = new Scroller(getContext());mAutoScrollAnimator = ValueAnimator.ofInt(0, 0);mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);mPaint.setStyle(Paint.Style.FILL);init(attrs);}private void init(AttributeSet attrs) {if (attrs != null) {TypedArray typedArray = getContext().obtainStyledAttributes(attrs,R.styleable.ScrollPickerView);if (typedArray.hasValue(R.styleable.ScrollPickerView_spv_center_item_background)) {setCenterItemBackground(typedArray.getDrawable(R.styleable.ScrollPickerView_spv_center_item_background));}setVisibleItemCount(typedArray.getInt(R.styleable.ScrollPickerView_spv_visible_item_count,getVisibleItemCount()));setCenterPosition(typedArray.getInt(R.styleable.ScrollPickerView_spv_center_item_position,getCenterPosition()));setIsCirculation(typedArray.getBoolean(R.styleable.ScrollPickerView_spv_is_circulation, isIsCirculation()));setDisallowInterceptTouch(typedArray.getBoolean(R.styleable.ScrollPickerView_spv_disallow_intercept_touch, isDisallowInterceptTouch()));setHorizontal(typedArray.getInt(R.styleable.ScrollPickerView_spv_orientation, mIsHorizontal ? 1 : 2) == 1);typedArray.recycle();}}@Overrideprotected void onDraw(Canvas canvas) {if (mData == null || mData.size() <= 0) {return;}// 選中item的背景色if (mCenterItemBackground != null) {mCenterItemBackground.draw(canvas);}// 只繪制可見的itemint length = Math.max(mCenterPosition + 1, mVisibleItemCount - mCenterPosition);int position;int start = Math.min(length, mData.size());if (mDrawAllItem) {start = mData.size();}// 上下兩邊for (int i = start; i >= 1; i--) { // 先從遠(yuǎn)離中間位置的item繪制,當(dāng)item內(nèi)容偏大時(shí),較近的item覆蓋在較遠(yuǎn)的上面if (mDrawAllItem || i <= mCenterPosition + 1) { // 上面的items,相對(duì)位置為 -iposition = mSelected - i < 0 ? mData.size() + mSelected - i: mSelected - i;// 傳入位置信息,繪制itemif (mIsCirculation) {drawItem(canvas, mData, position, -i, mMoveLength, mCenterPoint + mMoveLength - i * mItemSize);} else if (mSelected - i >= 0) { // 非循環(huán)滾動(dòng)drawItem(canvas, mData, position, -i, mMoveLength, mCenterPoint + mMoveLength - i * mItemSize);}}if (mDrawAllItem || i <= mVisibleItemCount - mCenterPosition) { // 下面的items,相對(duì)位置為 iposition = mSelected + i >= mData.size() ? mSelected + i- mData.size() : mSelected + i;// 傳入位置信息,繪制itemif (mIsCirculation) {drawItem(canvas, mData, position, i, mMoveLength, mCenterPoint + mMoveLength + i * mItemSize);} else if (mSelected + i < mData.size()) { // 非循環(huán)滾動(dòng)drawItem(canvas, mData, position, i, mMoveLength, mCenterPoint + mMoveLength + i * mItemSize);}}}// 選中的itemdrawItem(canvas, mData, mSelected, 0, mMoveLength, mCenterPoint + mMoveLength);}/*** 繪制item** @param canvas* @param data  數(shù)據(jù)集* @param position 在data數(shù)據(jù)集中的位置* @param relative 相對(duì)中間item的位置,relative==0表示中間item,relative<0表示上(左)邊的item,relative>0表示下(右)邊的item* @param moveLength 中間item滾動(dòng)的距離,moveLength<0則表示向上(右)滾動(dòng)的距離,moveLength>0則表示向下(左)滾動(dòng)的距離* @param top 當(dāng)前繪制item的坐標(biāo),當(dāng)垂直滾動(dòng)時(shí)為頂部y的坐標(biāo);當(dāng)水平滾動(dòng)時(shí)為item最左邊x的坐標(biāo)*/public abstract void drawItem(Canvas canvas, List<T> data, int position, int relative, float moveLength, float top);@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);}@Overrideprotected void onSizeChanged(int w, int h, int oldw, int oldh) {super.onSizeChanged(w, h, oldw, oldh);reset();}private void reset() {if (mCenterPosition < 0) {mCenterPosition = mVisibleItemCount / 2;}if (mIsHorizontal) {mItemHeight = getMeasuredHeight();mItemWidth = getMeasuredWidth() / mVisibleItemCount;mCenterY = 0;mCenterX = mCenterPosition * mItemWidth;mItemSize = mItemWidth;mCenterPoint = mCenterX;} else {mItemHeight = getMeasuredHeight() / mVisibleItemCount;mItemWidth = getMeasuredWidth();mCenterY = mCenterPosition * mItemHeight;mCenterX = 0;mItemSize = mItemHeight;mCenterPoint = mCenterY;}if (mCenterItemBackground != null) {mCenterItemBackground.setBounds(mCenterX, mCenterY, mCenterX + mItemWidth, mCenterY + mItemHeight);}}@RequiresApi(api = Build.VERSION_CODES.FROYO)@Overridepublic boolean onTouchEvent(MotionEvent event) {if (mDisallowTouch) { // 不允許觸摸return true;}if (mGestureDetector.onTouchEvent(event)) {return true;}switch (event.getActionMasked()) {case MotionEvent.ACTION_MOVE:if (mIsHorizontal) {if (Math.abs(event.getX() - mLastMoveX) < 0.1f) {return true;}mMoveLength += event.getX() - mLastMoveX;} else {if (Math.abs(event.getY() - mLastMoveY) < 0.1f) {return true;}mMoveLength += event.getY() - mLastMoveY;}mLastMoveY = event.getY();mLastMoveX = event.getX();checkCirculation();invalidate();break;case MotionEvent.ACTION_UP:mLastMoveY = event.getY();mLastMoveX = event.getX();moveToCenter();break;}return true;}/*** @param curr* @param end*/private void computeScroll(int curr, int end, float rate) {if (rate < 1) { // 正在滾動(dòng)if (mIsHorizontal) {// 可以把scroller看做模擬的觸屏滑動(dòng)操作,mLastScrollX為上次滑動(dòng)的坐標(biāo)mMoveLength = mMoveLength + curr - mLastScrollX;mLastScrollX = curr;} else {// 可以把scroller看做模擬的觸屏滑動(dòng)操作,mLastScrollY為上次滑動(dòng)的坐標(biāo)mMoveLength = mMoveLength + curr - mLastScrollY;mLastScrollY = curr;}checkCirculation();invalidate();} else { // 滾動(dòng)完畢mIsMovingCenter = false;mLastScrollY = 0;mLastScrollX = 0;// 直接居中,不通過動(dòng)畫if (mMoveLength > 0) { //// 向下滑動(dòng)if (mMoveLength < mItemSize / 2) {mMoveLength = 0;} else {mMoveLength = mItemSize;}} else {if (-mMoveLength < mItemSize / 2) {mMoveLength = 0;} else {mMoveLength = -mItemSize;}}checkCirculation();mMoveLength = 0;mLastScrollY = 0;mLastScrollX = 0;notifySelected(true);invalidate();}}@Overridepublic void computeScroll() {if (mScroller.computeScrollOffset()) { // 正在滾動(dòng)if (mIsHorizontal) {// 可以把scroller看做模擬的觸屏滑動(dòng)操作,mLastScrollX為上次滑動(dòng)的坐標(biāo)mMoveLength = mMoveLength + mScroller.getCurrX() - mLastScrollX;} else {// 可以把scroller看做模擬的觸屏滑動(dòng)操作,mLastScrollY為上次滑動(dòng)的坐標(biāo)mMoveLength = mMoveLength + mScroller.getCurrY() - mLastScrollY;}mLastScrollY = mScroller.getCurrY();mLastScrollX = mScroller.getCurrX();checkCirculation(); // 檢測(cè)當(dāng)前選中的iteminvalidate();} else { // 滾動(dòng)完畢if (mIsFling) {mIsFling = false;moveToCenter(); // 滾動(dòng)到中間位置} else if (mIsMovingCenter) { // 選擇完成,回調(diào)給監(jiān)聽器mMoveLength = 0;mIsMovingCenter = false;mLastScrollY = 0;mLastScrollX = 0;notifySelected(true);}}}public void cancelScroll() {mLastScrollY = 0;mLastScrollX = 0;mIsFling = mIsMovingCenter = false;mScroller.abortAnimation();stopAutoScroll();}// 檢測(cè)當(dāng)前選擇的item位置private void checkCirculation() {if (mMoveLength >= mItemSize) { // 向下滑動(dòng)// 該次滾動(dòng)距離中越過的item數(shù)量int span = (int) (mMoveLength / mItemSize);mSelected -= span;if (mSelected < 0) { // 滾動(dòng)頂部,判斷是否循環(huán)滾動(dòng)if (mIsCirculation) {do {mSelected = mData.size() + mSelected;} while (mSelected < 0); // 當(dāng)越過的item數(shù)量超過一圈時(shí)mMoveLength = (mMoveLength - mItemSize) % mItemSize;} else { // 非循環(huán)滾動(dòng)mSelected = 0;mMoveLength = mItemSize;if (mIsFling) { // 停止慣性滑動(dòng),根據(jù)computeScroll()中的邏輯,下一步將調(diào)用moveToCenter()mScroller.forceFinished(true);}if (mIsMovingCenter) { // 移回中間位置scroll(mMoveLength, 0);}}} else {mMoveLength = (mMoveLength - mItemSize) % mItemSize;}} else if (mMoveLength <= -mItemSize) { // 向上滑動(dòng)// 該次滾動(dòng)距離中越過的item數(shù)量int span = (int) (-mMoveLength / mItemSize);mSelected += span;if (mSelected >= mData.size()) { // 滾動(dòng)末尾,判斷是否循環(huán)滾動(dòng)if (mIsCirculation) {do {mSelected = mSelected - mData.size();} while (mSelected >= mData.size()); // 當(dāng)越過的item數(shù)量超過一圈時(shí)mMoveLength = (mMoveLength + mItemSize) % mItemSize;} else { // 非循環(huán)滾動(dòng)mSelected = mData.size() - 1;mMoveLength = -mItemSize;if (mIsFling) { // 停止慣性滑動(dòng),根據(jù)computeScroll()中的邏輯,下一步將調(diào)用moveToCenter()mScroller.forceFinished(true);}if (mIsMovingCenter) { // 移回中間位置scroll(mMoveLength, 0);}}} else {mMoveLength = (mMoveLength + mItemSize) % mItemSize;}}}// 移動(dòng)到中間位置private void moveToCenter() {if (!mScroller.isFinished() || mIsFling || mMoveLength == 0) {return;}cancelScroll();// 向下滑動(dòng)if (mMoveLength > 0) {if (mIsHorizontal) {if (mMoveLength < mItemWidth / 2) {scroll(mMoveLength, 0);} else {scroll(mMoveLength, mItemWidth);}} else {if (mMoveLength < mItemHeight / 2) {scroll(mMoveLength, 0);} else {scroll(mMoveLength, mItemHeight);}}} else {if (mIsHorizontal) {if (-mMoveLength < mItemWidth / 2) {scroll(mMoveLength, 0);} else {scroll(mMoveLength, -mItemWidth);}} else {if (-mMoveLength < mItemHeight / 2) {scroll(mMoveLength, 0);} else {scroll(mMoveLength, -mItemHeight);}}}}// 平滑滾動(dòng)private void scroll(float from, int to) {if (mIsHorizontal) {mLastScrollX = (int) from;mIsMovingCenter = true;mScroller.startScroll((int) from, 0, 0, 0);mScroller.setFinalX(to);} else {mLastScrollY = (int) from;mIsMovingCenter = true;mScroller.startScroll(0, (int) from, 0, 0);mScroller.setFinalY(to);}invalidate();}// 慣性滑動(dòng),private void fling(float from, float vel) {if (mIsHorizontal) {mLastScrollX = (int) from;mIsFling = true;// 最多可以慣性滑動(dòng)10個(gè)itemmScroller.fling((int) from, 0, (int) vel, 0, -10 * mItemWidth,10 * mItemWidth, 0, 0);} else {mLastScrollY = (int) from;mIsFling = true;// 最多可以慣性滑動(dòng)10個(gè)itemmScroller.fling(0, (int) from, 0, (int) vel, 0, 0, -10 * mItemHeight,10 * mItemHeight);}invalidate();}private void notifySelected(final boolean trigger) {if (mListener != null) {// 告訴監(jiān)聽器選擇完畢post(new Runnable() {@Overridepublic void run() {if(mLastSelected != mSelected){if(trigger){mListener.onSelected(ScrollPickerView.this, mSelected);}}mLastSelected = mSelected;}});}}private boolean mIsAutoScrolling = false;private ValueAnimator mAutoScrollAnimator;private final static SlotInterpolator sAutoScrollInterpolator = new SlotInterpolator();/*** 自動(dòng)滾動(dòng)(必須設(shè)置為可循環(huán)滾動(dòng))** @param position* @param duration* @param speed 每毫秒移動(dòng)的像素點(diǎn)*/@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)public void autoScrollFast(final int position, long duration, float speed, final Interpolator interpolator) {if (mIsAutoScrolling || !mIsCirculation) {return;}cancelScroll();mIsAutoScrolling = true;int length = (int) (speed * duration);int circle = (int) (length * 1f / (mData.size() * mItemSize) + 0.5f); // 圈數(shù)circle = circle <= 0 ? 1 : circle;int aPlan = circle * (mData.size()) * mItemSize + (mSelected - position) * mItemSize;int bPlan = aPlan + (mData.size()) * mItemSize; // 多一圈// 讓其盡量接近lengthfinal int end = Math.abs(length - aPlan) < Math.abs(length - bPlan) ? aPlan : bPlan;mAutoScrollAnimator.cancel();mAutoScrollAnimator.setIntValues(0, end);mAutoScrollAnimator.setInterpolator(interpolator);mAutoScrollAnimator.setDuration(duration);mAutoScrollAnimator.removeAllUpdateListeners();if (end != 0) { // itemHeight為0導(dǎo)致endy=0mAutoScrollAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {@Overridepublic void onAnimationUpdate(ValueAnimator animation) {float rate = 0;rate = animation.getCurrentPlayTime() * 1f / animation.getDuration();computeScroll((int) animation.getAnimatedValue(), end, rate);}});mAutoScrollAnimator.removeAllListeners();mAutoScrollAnimator.addListener(new AnimatorListenerAdapter() {@Overridepublic void onAnimationEnd(Animator animation) {super.onAnimationEnd(animation);mIsAutoScrolling = false;}});mAutoScrollAnimator.start();} else {computeScroll(end, end, 1);mIsAutoScrolling = false;}}/*** 自動(dòng)滾動(dòng),默認(rèn)速度為 0.6dp/ms** @see ScrollPickerView#autoScrollFast(int, long, float, Interpolator)*/@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)public void autoScrollFast(final int position, long duration) {float speed = dip2px(0.6f);autoScrollFast(position, duration, speed, sAutoScrollInterpolator);}/*** 自動(dòng)滾動(dòng)** @see ScrollPickerView#autoScrollFast(int, long, float, Interpolator)*/@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)public void autoScrollFast(final int position, long duration, float speed) {autoScrollFast(position, duration, speed, sAutoScrollInterpolator);}/*** 滾動(dòng)到指定位置** @param toPosition  需要滾動(dòng)到的位置* @param duration  滾動(dòng)時(shí)間* @param interpolator*/@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)public void autoScrollToPosition(int toPosition, long duration, final Interpolator interpolator) {toPosition = toPosition % mData.size();final int endY = (mSelected - toPosition) * mItemHeight;autoScrollTo(endY, duration, interpolator, false);}/*** @param endY  需要滾動(dòng)到的位置* @param duration  滾動(dòng)時(shí)間* @param interpolator* @param canIntercept 能否終止?jié)L動(dòng),比如觸摸屏幕終止?jié)L動(dòng)*/@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)public void autoScrollTo(final int endY, long duration, final Interpolator interpolator, boolean canIntercept) {if (mIsAutoScrolling) {return;}final boolean temp = mDisallowTouch;mDisallowTouch = !canIntercept;mIsAutoScrolling = true;mAutoScrollAnimator.cancel();mAutoScrollAnimator.setIntValues(0, endY);mAutoScrollAnimator.setInterpolator(interpolator);mAutoScrollAnimator.setDuration(duration);mAutoScrollAnimator.removeAllUpdateListeners();mAutoScrollAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {@Overridepublic void onAnimationUpdate(ValueAnimator animation) {float rate = 0;rate = animation.getCurrentPlayTime() * 1f / animation.getDuration();computeScroll((int) animation.getAnimatedValue(), endY, rate);}});mAutoScrollAnimator.removeAllListeners();mAutoScrollAnimator.addListener(new AnimatorListenerAdapter() {@Overridepublic void onAnimationEnd(Animator animation) {super.onAnimationEnd(animation);mIsAutoScrolling = false;mDisallowTouch = temp;}});mAutoScrollAnimator.start();}/*** 停止自動(dòng)滾動(dòng)*/@TargetApi(Build.VERSION_CODES.HONEYCOMB)public void stopAutoScroll() {mIsAutoScrolling = false;mAutoScrollAnimator.cancel();}private static class SlotInterpolator implements Interpolator {@Overridepublic float getInterpolation(float input) {return (float) (Math.cos((input + 1) * Math.PI) / 2.0f) + 0.5f;}}/*** 快速滑動(dòng)時(shí),慣性滑動(dòng)一段距離** @author huangziwei*/private class FlingOnGestureListener extends GestureDetector.SimpleOnGestureListener {private boolean mIsScrollingLastTime = false;public boolean onDown(MotionEvent e) {if (mDisallowInterceptTouch) { // 不允許父組件攔截事件ViewParent parent = getParent();if (parent != null) {parent.requestDisallowInterceptTouchEvent(true);}}mIsScrollingLastTime = isScrolling(); // 記錄是否從滾動(dòng)狀態(tài)終止// 點(diǎn)擊時(shí)取消所有滾動(dòng)效果cancelScroll();mLastMoveY = e.getY();mLastMoveX = e.getX();return true;}@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,final float velocityY) {// 慣性滑動(dòng)if (mIsInertiaScroll) {cancelScroll();if (mIsHorizontal) {fling(mMoveLength, velocityX);} else {fling(mMoveLength, velocityY);}}return true;}@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)@Overridepublic boolean onSingleTapUp(MotionEvent e) {mLastMoveY = e.getY();mLastMoveX = e.getX();float lastMove = 0;if (isHorizontal()) {mCenterPoint = mCenterX;lastMove = mLastMoveX;LogUtils.e("lastMove===",lastMove+"");LogUtils.e("mCenterPoint===",mCenterPoint+"");} else {mCenterPoint = mCenterY;lastMove = mLastMoveY;}if (mCanTap && !isScrolling() && !mIsScrollingLastTime) {if (lastMove >= mCenterPoint && lastMove <= mCenterPoint + mItemSize) {//performClick();} else if (lastMove < mCenterPoint) {int bs = (int)((mCenterPoint+mItemSize) - lastMove)/mItemSize;int move = bs*mItemSize;autoScrollTo(move, 150, sAutoScrollInterpolator, false);} else if (lastMove > mCenterPoint + mItemSize) {int bs = (int)((lastMove -mCenterPoint)/mItemWidth);int move = -bs*mItemSize;autoScrollTo(move, 150, sAutoScrollInterpolator, false);} else {moveToCenter();}} else {moveToCenter();}return true;}}public List<T> getData() {return mData;}public void setData(List<T> data) {if (data == null) {mData = new ArrayList<T>();} else {this.mData = data;}mSelected = mData.size() / 2;invalidate();}public T getSelectedItem() {return mData.get(mSelected);}public int getSelectedPosition() {return mSelected;}public void setSelectedPosition(int position,boolean trigger) {if (position < 0 || position > mData.size() - 1|| position == mSelected) {return;}mSelected = position;invalidate();if (mListener != null) {notifySelected(trigger);}}public void setOnSelectedListener(OnSelectedListener listener) {mListener = listener;}public OnSelectedListener getListener() {return mListener;}public boolean isInertiaScroll() {return mIsInertiaScroll;}public void setInertiaScroll(boolean inertiaScroll) {this.mIsInertiaScroll = inertiaScroll;}public boolean isIsCirculation() {return mIsCirculation;}public void setIsCirculation(boolean isCirculation) {this.mIsCirculation = false;}public boolean isDisallowInterceptTouch() {return mDisallowInterceptTouch;}public int getVisibleItemCount() {return mVisibleItemCount;}public void setVisibleItemCount(int visibleItemCount) {mVisibleItemCount = visibleItemCount;reset();invalidate();}/*** 是否允許父元素?cái)r截事件,設(shè)置true后可以保證在ScrollView下正常滾動(dòng)*/public void setDisallowInterceptTouch(boolean disallowInterceptTouch) {mDisallowInterceptTouch = disallowInterceptTouch;}public int getItemHeight() {return mItemHeight;}public int getItemWidth() {return mItemWidth;}/*** @return 當(dāng)垂直滾動(dòng)時(shí),mItemSize = mItemHeight;水平滾動(dòng)時(shí),mItemSize = mItemWidth*/public int getItemSize() {return mItemSize;}/*** @return 中間item的起始坐標(biāo)x(不考慮偏移), 當(dāng)垂直滾動(dòng)時(shí),x = mCenterPosition*mItemWidth*/public int getCenterX() {return mCenterX;}/*** @return 中間item的起始坐標(biāo)y(不考慮偏移), 當(dāng)垂直滾動(dòng)時(shí),y= mCenterPosition*mItemHeight*/public int getCenterY() {return mCenterY;}/*** @return 當(dāng)垂直滾動(dòng)時(shí),mCenterPoint = mCenterY;水平滾動(dòng)時(shí),mCenterPoint = mCenterX*/public int getCenterPoint() {return mCenterPoint;}public boolean isDisallowTouch() {return mDisallowTouch;}/*** 設(shè)置是否允許手動(dòng)觸摸滾動(dòng)** @param disallowTouch*/public void setDisallowTouch(boolean disallowTouch) {mDisallowTouch = disallowTouch;}/*** 中間item的位置,0 <= centerPosition <= mVisibleItemCount** @param centerPosition*/public void setCenterPosition(int centerPosition) {if (centerPosition < 0) {mCenterPosition = 0;} else if (centerPosition >= mVisibleItemCount) {mCenterPosition = mVisibleItemCount - 1;} else {mCenterPosition = centerPosition;}mCenterY = mCenterPosition * mItemHeight;invalidate();}/*** 中間item的位置,默認(rèn)為 mVisibleItemCount / 2** @return*/public int getCenterPosition() {return mCenterPosition;}public void setCenterItemBackground(Drawable centerItemBackground) {mCenterItemBackground = centerItemBackground;mCenterItemBackground.setBounds(mCenterX, mCenterY, mCenterX + mItemWidth, mCenterY + mItemHeight);invalidate();}public void setCenterItemBackground(int centerItemBackgroundColor) {mCenterItemBackground = new ColorDrawable(centerItemBackgroundColor);mCenterItemBackground.setBounds(mCenterX, mCenterY, mCenterX + mItemWidth, mCenterY + mItemHeight);invalidate();}public Drawable getCenterItemBackground() {return mCenterItemBackground;}public boolean isScrolling() {return mIsFling || mIsMovingCenter || mIsAutoScrolling;}public boolean isFling() {return mIsFling;}public boolean isMovingCenter() {return mIsMovingCenter;}public boolean isAutoScrolling() {return mIsAutoScrolling;}public boolean isCanTap() {return mCanTap;}/*** 設(shè)置 單擊切換選項(xiàng)或觸發(fā)點(diǎn)擊監(jiān)聽器** @param canTap*/public void setCanTap(boolean canTap) {mCanTap = canTap;}public boolean isHorizontal() {return mIsHorizontal;}public boolean isVertical() {return !mIsHorizontal;}public void setHorizontal(boolean horizontal) {if (mIsHorizontal == horizontal) {return;}mIsHorizontal = horizontal;reset();if (mIsHorizontal) {mItemSize = mItemWidth;} else {mItemSize = mItemHeight;}invalidate();}public void setVertical(boolean vertical) {if (mIsHorizontal == !vertical) {return;}mIsHorizontal = !vertical;reset();if (mIsHorizontal) {mItemSize = mItemWidth;} else {mItemSize = mItemHeight;}invalidate();}public boolean isDrawAllItem() {return mDrawAllItem;}public void setDrawAllItem(boolean drawAllItem) {mDrawAllItem = drawAllItem;}/*** @author huangziwei*/public interface OnSelectedListener {void onSelected(ScrollPickerView scrollPickerView, int position);}public int dip2px(float dipVlue) {DisplayMetrics metrics = getContext().getResources().getDisplayMetrics();float sDensity = metrics.density;return (int) (dipVlue * sDensity + 0.5F);}@Overridepublic void setVisibility(int visibility) {super.setVisibility(visibility);if (visibility == VISIBLE) {moveToCenter();}} }

ColorUtil 類

package com.demo.utils;import android.graphics.Color;/*** 顏色工具欄*/ public class ColorUtil {/*** 計(jì)算漸變后的顏色** @param startColor 開始顏色* @param endColor 結(jié)束顏色* @param rate 漸變率(0,1)* @return 漸變后的顏色,當(dāng)rate=0時(shí),返回startColor,當(dāng)rate=1時(shí)返回endColor*/public static int computeGradientColor(int startColor, int endColor, float rate) {if (rate < 0) {rate = 0;}if (rate > 1) {rate = 1;}int alpha = Color.alpha(endColor) - Color.alpha(startColor);int red = Color.red(endColor) - Color.red(startColor);int green = Color.green(endColor) - Color.green(startColor);int blue = Color.blue(endColor) - Color.blue(startColor);return Color.argb(Math.round(Color.alpha(startColor) + alpha * rate),Math.round(Color.red(startColor) + red * rate),Math.round(Color.green(startColor) + green * rate),Math.round(Color.blue(startColor) + blue * rate));} }

調(diào)用

/*** 溫度*/airTemperatureView = new AirTemperatureView(context);LinearLayout.LayoutParams airTemperatureView_Params = new LinearLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,Axis.scaleX(230));airTemperatureView_Params.setMargins(0,Axis.scaleX(100),0,0);bodyLayout.addView(airTemperatureView,airTemperatureView_Params);//父布局 addView()airTemperatureView.setOnTemperatureListener(new AirTemperatureView.TemperatureListener() {@Overridepublic void setAirTemper(int temperature) {LogUtils.e("空調(diào)溫度===",temperature+"");setTemperature(temperature);//網(wǎng)絡(luò)請(qǐng)求方法}});

總結(jié)

以上是生活随笔為你收集整理的Android 自定义控件 按钮滚动选择的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

天天玩天天操天天射 | 久久99视频精品 | 亚洲黄色成人 | 日韩精品久久中文字幕 | 91丨九色丨国产女 | 一区二区三区福利 | av福利在线导航 | 日韩在线观看第一页 | 99精品视频免费全部在线 | 日本黄区免费视频观看 | 精品国内自产拍在线观看视频 | 亚洲黄色影院 | av一区二区三区在线观看 | 亚洲一区欧美激情 | 色噜噜狠狠狠狠色综合久不 | 亚洲 欧美 另类人妖 | 中文字幕在线观看一区 | 日韩美女av在线 | 久久看毛片| 在线视频免费观看 | 久久av影视 | 看av免费网站 | 97超碰超碰| 夜夜操天天操 | 欧美孕交vivoestv另类 | 亚洲午夜久久久久久久久电影网 | 91精品久久久久久久99蜜桃 | 亚洲成人国产精品 | 亚洲欧洲中文日韩久久av乱码 | а天堂中文最新一区二区三区 | 日韩午夜小视频 | 国产麻豆精品久久 | 亚洲va韩国va欧美va精四季 | 成人国产精品一区 | www.夜夜爱 | 亚洲国产免费av | 国产99亚洲| 婷婷五天天在线视频 | 亚洲视频,欧洲视频 | 99精品免费久久久久久日本 | 国产日韩中文字幕 | 亚州精品成人 | 很黄很色很污的网站 | 深夜免费福利 | 激情喷水| 国产99在线| 99久久网站| a久久久久久 | 91一区啪爱嗯打偷拍欧美 | 免费看片网页 | 色久综合| 韩日av一区二区 | 国产精品高清在线观看 | 久草在线视频免费资源观看 | 亚洲精品在线视频 | www免费在线观看 | 欧美一级性视频 | 亚洲精品美女久久久 | 国产黄色看片 | 精品99免费 | 特级大胆西西4444www | 亚洲无吗视频在线 | 91久久精品一区二区三区 | 久久久激情网 | 在线观看亚洲精品视频 | 亚洲丁香久久久 | 久久久久久久久艹 | 欧美91视频 | 国产免费又粗又猛又爽 | 国产精品嫩草在线 | 国际精品久久 | 99中文视频在线 | 97在线观看| 精品在线一区二区三区 | 久久都是精品 | 久久久www免费电影网 | 久久久人人人 | 亚洲毛片视频 | av电影一区 | 久久久免费播放 | 在线 高清 中文字幕 | 又爽又黄在线观看 | 久久视频在线 | 91精品啪| 欧美久久电影 | 久久av观看 | 国产成人精品久久二区二区 | 免费看的黄网站 | 国产精品mm | 91精品婷婷国产综合久久蝌蚪 | av大全在线| 亚洲日本三级 | 中文字幕在线免费看 | 伊人春色电影网 | 啪啪精品| a黄色大片| 日韩a在线观看 | 黄色在线免费观看网站 | 国产69精品久久久久99尤 | 国产中文字幕在线看 | 51久久夜色精品国产麻豆 | 午夜91在线 | 一级片免费在线 | 最近高清中文字幕 | 最近中文字幕大全中文字幕免费 | 久久久精品一区二区 | 玖玖在线资源 | 国产三级av在线 | 国产一区二区三区视频在线 | 亚洲欧美激情精品一区二区 | 天天操天天射天天添 | 黄色网址在线播放 | 在线观看视频一区二区三区 | 欧美日韩高清在线 | 亚洲人毛片 | 天天爽天天碰狠狠添 | 精品99999| 激情图片qvod| 天天操网| 精品1区2区 | 久久久网址 | 天天干中文字幕 | 亚洲精品国产精品国自产观看 | 国产女人18毛片水真多18精品 | 久久精品国产美女 | 91夫妻视频 | 日韩在线视频在线观看 | 视频一区二区在线观看 | 97视频在线免费观看 | 黄色片免费在线 | 99麻豆视频 | 日韩欧美在线高清 | 亚洲一级特黄 | 一区免费观看 | 国产视频18| 综合久久久久久 | 中文字幕大全 | 四川妇女搡bbbb搡bbbb搡 | 欧美精品乱码久久久久 | 中文字幕2021 | 国产成人99av超碰超爽 | 五月婷婷导航 | 久久美女精品 | 久久久夜色 | 日日麻批40分钟视频免费观看 | 黄色网在线播放 | 国产精品一区二区三区在线免费观看 | 91麻豆福利 | 日韩视频免费观看高清完整版在线 | 免费看久久久 | 国产日韩欧美在线 | 69精品在线 | 国产黄视频在线观看 | 欧美夫妻性生活电影 | 久久免费电影网 | 91精品国产麻豆 | 91精品久久久久久久久久久久久 | 亚洲午夜在线视频 | 亚州av网站大全 | 久草免费看 | 日韩视频欧美视频 | 黄色软件在线观看免费 | 免费一级片在线观看 | 国内精品久久久久久久久久久久 | 五月天综合网站 | 在线看一级片 | 深夜免费福利 | 午夜国产一区二区 | 天堂在线一区二区 | 欧美一级日韩三级 | 国产无遮挡猛进猛出免费软件 | 久久免费成人精品视频 | 国产成人精品久久二区二区 | 综合久久影院 | 亚洲精品视频免费在线 | 韩国在线一区二区 | 超碰人人草人人 | 欧美日在线 | 亚洲va综合va国产va中文 | 亚洲国产美女精品久久久久∴ | av网址在线播放 | 午夜精品久久久久久久久久 | 国产999精品久久久久久麻豆 | 天天·日日日干 | 国产精品18久久久久久久久 | 精品国内 | 国产直播av | 久久精品欧美一 | 免费在线观看av | 黄色免费网站大全 | 国产精品99视频 | 欧美一级在线观看视频 | 成人免费看黄 | 国产综合视频在线观看 | 日本成人中文字幕在线观看 | 色综合久久久久久久久五月 | 99欧美精品 | 婷婷5月激情5月 | 黄色免费网战 | 国内免费的中文字幕 | 久久综合九色综合久久久精品综合 | 日韩字幕| 国产 欧美 日本 | 欧美一级片免费观看 | 国产日韩一区在线 | 99精品一级欧美片免费播放 | 久草在线视频在线观看 | 国产精品原创视频 | 中文字幕有码在线观看 | 超碰97av在线 | 日韩精品欧美一区 | 欧美资源在线观看 | 一区二区理论片 | 国产黄色片免费在线观看 | 一区二区三区精品久久久 | 精品久久一区二区三区 | 久久亚洲精品电影 | 亚洲视频在线观看网站 | 亚洲一区二区三区毛片 | 日狠狠| 成人av在线影视 | 91污污| 久久人人爽人人爽人人片 | 91精品国产一区 | 日韩久久一区二区 | 中文字幕色播 | 波多野结衣最新 | 午夜精品视频免费在线观看 | 伊人国产女 | 国产一二三四在线视频 | 亚洲天堂va | 久久综合桃花 | 欧美日韩一区二区三区不卡 | 国产精品精品久久久 | 日日夜夜噜 | 婷婷色中文 | 99在线高清视频在线播放 | 欧美特一级片 | 久久精品国产精品亚洲精品 | 精品国产一区二区三区四区vr | 日精品 | 午夜性生活片 | 国内精品久久久久久久97牛牛 | 99精品国自产在线 | 五月天综合激情网 | 国产激情小视频在线观看 | 国产精品网址在线观看 | 六月丁香伊人 | 久久久久久高潮国产精品视 | 亚洲不卡在线 | 国产精品女主播一区二区三区 | 国产成人一区在线 | 99久久9| 一区二区三区福利 | 精品国产综合区久久久久久 | 久99热| 99视频| 国产精品2019 | 91久久久久久国产精品 | 亚洲精品一区二区三区四区高清 | 久久久久久久久久久免费视频 | 蜜臀久久99精品久久久无需会员 | 国产精品免费观看国产网曝瓜 | 国产精品综合久久久 | 美女在线免费视频 | 国产精品69av | 二区三区在线视频 | 人人澡人人澡人人 | 最新成人av | 欧美a级在线免费观看 | 激情视频在线高清看 | 91精品久久久久久久91蜜桃 | 国产精品入口a级 | 国产精品wwwwww| 综合久色 | 在线国产一区二区 | 亚洲国产精品资源 | 国产免费小视频 | 亚洲 欧美 另类人妖 | 国产麻豆果冻传媒在线观看 | 福利久久久 | 爱av在线网 | 天天天插 | 久久综合九色综合欧美就去吻 | 大荫蒂欧美视频另类xxxx | 国产婷婷一区二区 | 欧美黑人性爽 | 国产一级片观看 | 日本黄色免费大片 | 国产中文字幕在线视频 | 精品美女久久久久久免费 | 91精品办公室少妇高潮对白 | 欧美日韩久久不卡 | 婷婷久月 | 国产精品爽爽久久久久久蜜臀 | 国产女人18毛片水真多18精品 | 77国产精品 | 国产一区二区免费在线观看 | 国产精品久久久久影视 | 免费三级黄 | 西西444www大胆无视频 | 一区二区三区视频 | 一区二区三区动漫 | 九色精品免费永久在线 | 特级毛片在线观看 | 国产乱视频 | 天天天干 | 国内视频1区 | 欧美激情第一区 | 色操插 | 欧美日韩免费观看一区二区三区 | 一区二区视频在线免费观看 | 亚洲va在线va天堂 | 少妇bbbb | 久草视频在线资源站 | 手机在线看片日韩 | 日韩黄色免费电影 | 国产色在线 | 超碰在线公开 | 亚洲精品国产视频 | 一区二区电影在线观看 | 伊人久久精品久久亚洲一区 | 激情久久五月天 | 成人在线视频你懂的 | 亚洲精品国产精品国自产观看浪潮 | 中文字幕亚洲不卡 | 午夜影院三级 | 婷婷丁香综合 | 成人蜜桃| 99精品国产99久久久久久97 | 中文字幕在线观看免费高清完整版 | 免费久久久 | 最新高清无码专区 | 一区电影 | 国产三级精品在线 | 免费黄色网止 | 99av在线视频 | 久久视频免费看 | 国产精品99精品久久免费 | 丁香花在线视频观看免费 | 天天操天天爱天天干 | 久久欧美精品 | 91亚洲精品久久久蜜桃 | 免费视频成人 | 超碰在线公开 | 日韩一区二区三区高清免费看看 | 婷婷av网| av黄色国产 | 一级欧美日韩 | 欧美一区在线看 | 日韩av影视在线 | 精品国产伦一区二区三区观看体验 | 国产精品美女久久久网av | 国产高清免费视频 | 综合色亚洲 | 日韩av视屏 | 日韩中文三级 | 成人av网页 | 国产99一区 | 欧美精品亚州精品 | 国产一级二级三级在线观看 | 欧美精品久久久久性色 | 精品国产欧美一区二区三区不卡 | 精品久久五月天 | 国产中文字幕91 | 天天干天天看 | 国产福利91精品一区二区三区 | 五月婷婷丁香激情 | 夜夜夜夜夜夜操 | 久久精品一区二区 | 亚洲国产成人在线观看 | 成人在线播放视频 | 婷久久 | 精品久久一 | 成人动态视频 | 亚洲六月丁香色婷婷综合久久 | 国产高清免费观看 | 一级黄色a视频 | 一区二区三区在线观看免费视频 | 中文字幕久久精品亚洲乱码 | 欧美另类sm图片 | 天天av综合网 | 欧美激情综合五月色丁香小说 | 国产视频综合在线 | 五月天久久久久久 | 粉嫩av一区二区三区四区在线观看 | 久久国产露脸精品国产 | 中文字幕在线看视频国产中文版 | 国内丰满少妇猛烈精品播 | 国产精品1区2区在线观看 | 999成人| 在线草 | 久久这里只有精品视频首页 | 亚洲在线观看av | 天天玩天天干天天操 | 最新av在线播放 | 久久人91精品久久久久久不卡 | 国产黑丝一区二区三区 | 日一日干一干 | 成人毛片网 | 国产精品免费看久久久8精臀av | 国产色视频网站2 | 久草视频免费在线播放 | 国产专区一 | 98超碰在线| 国产中出在线观看 | 亚洲涩涩网站 | 日本在线观看中文字幕无线观看 | 久久免费电影网 | 国产又粗又猛又爽又黄的视频免费 | 免费在线观看成年人视频 | 国产伦精品一区二区三区免费 | 成人av一二三区 | 国产精品一区专区欧美日韩 | 手机成人免费视频 | 激情综合电影网 | 日韩精品免费一区 | 日韩一区二区三区免费电影 | 欧美一级特黄高清视频 | 黄色a视频| 特黄色大片 | 奇米7777狠狠狠琪琪视频 | 中文字幕精品久久 | 精品在线一区二区 | 91黄色小视频 | www夜夜操com | 国产精品美女久久久久久网站 | 国产中文字幕在线播放 | 国内久久精品视频 | 久久午夜电影 | 成人黄色国产 | 国产97色在线 | 日日色综合 | 久久精品99精品国产香蕉 | 国产网红在线观看 | www.色午夜,com| 91麻豆文化传媒在线观看 | 九九久久影院 | 久久99热精品这里久久精品 | 久久精品99北条麻妃 | 亚洲一级性| japanese黑人亚洲人4k | 久草综合视频 | 精品天堂av| 日韩动漫免费观看高清完整版在线观看 | 日本精品一区二区三区在线播放视频 | 中文字幕刺激在线 | 精品视频不卡 | 96精品视频 | 操高跟美女 | 伊人天天| 亚洲精品美女久久久 | 日韩欧美综合视频 | 日韩在线免费看 | 亚洲视频久久久久 | 麻豆播放 | 在线视频日韩一区 | 日韩在线网址 | 久久久久国产一区二区三区 | 激情视频免费观看 | 国产精品无av码在线观看 | 国产中文在线播放 | 91精品久久香蕉国产线看观看 | 国产麻豆精品久久一二三 | 日韩欧美视频二区 | 插久久 | 欧美日韩精品电影 | 国产精品久久久久久久午夜片 | 中文字幕在线免费观看 | a色视频 | 国产成人精品久久久 | 欧美日韩在线观看不卡 | 91在线免费观看国产 | www.天天色| 日本精品久久久久久 | 久久久国产精华液 | 永久精品视频 | 深夜免费福利视频 | 久99精品| 亚洲毛片视频 | 在线观看韩日电影免费 | 天天干天天怕 | 国产精品女人久久久久久 | 国产一级视屏 | 色婷婷狠狠操 | 久久99国产精品自在自在app | www.人人干 | 亚洲精品字幕在线观看 | 九月婷婷人人澡人人添人人爽 | 色婷在线 | 久免费 | 伊人久久国产精品 | 欧美日韩视频在线观看免费 | 国产精品久久久久9999吃药 | 伊人干综合 | 天天操天天操天天操天天操天天操 | 亚洲综合视频在线观看 | 午夜av大片 | 91av视屏| 日韩色在线观看 | 狠狠夜夜| 精品国产自在精品国产精野外直播 | 美女精品在线观看 | 草久久久 | 国产黄色片在线 | 久草国产在线 | 中文字幕韩在线第一页 | 成年美女黄网站色大片免费看 | 成人三级网站在线观看 | 国产高清永久免费 | 8x8x在线观看视频 | 久久精品电影院 | 日日干天天插 | 久久色网站 | 欧美精品三级在线观看 | 四月婷婷在线观看 | a级片网站 | 人人狠狠| 99精品免费视频 | 国产色女| 中文字幕一区二区三区四区在线视频 | 女人高潮一级片 | 国产精品乱码久久久久 | 在线视频区 | 日韩欧美一区二区三区在线 | 欧美日韩裸体免费视频 | 五月激情久久 | 在线电影日韩 | 久久久精品一区二区 | 国产视| 日韩精品免费一区二区在线观看 | 四虎www com | 日韩簧片在线观看 | 久久免费在线观看视频 | 中文字幕在 | 最新影院 | 97视频在线观看成人 | 日韩免费电影网站 | 欧美精品在线视频观看 | 国产99在线播放 | 日韩欧美69| 亚洲另类久久 | 91麻豆精品一区二区三区 | 国产精品免费在线 | 久操免费视频 | 久久极品| 伊人狠狠色丁香婷婷综合 | 欧美一区二区伦理片 | 欧美精彩视频在线观看 | 一级黄色免费网站 | 国产精品永久久久久久久www | 成人精品一区二区三区电影免费 | 国产视频一区二区在线观看 | 久久夜视频| 在线av资源 | 波多野结衣在线视频免费观看 | 欧美国产精品久久久久久免费 | 色婷婷av国产精品 | 五月婷婷丁香在线观看 | 日韩电影在线观看一区 | 色综合久久中文综合久久牛 | 国产视频 亚洲视频 | 亚洲免费在线观看视频 | 日韩免费一区二区在线观看 | 天天色天天综合网 | 久久成人国产精品免费软件 | 激情欧美国产 | 国产精品12 | 成片免费| 看黄色.com| 欧美精品做受xxx性少妇 | 麻豆视频免费在线观看 | 91尤物国产尤物福利在线播放 | 国产一区二区精 | 九九久久在线看 | 日本丰满少妇免费一区 | 久久久男人的天堂 | 日韩精品中文字幕在线 | 激情在线免费视频 | 国产高清在线免费 | 在线国产福利 | 日本中文字幕网址 | 97国产电影 | 中文字幕亚洲精品日韩 | 久久久久北条麻妃免费看 | 久久女同性恋中文字幕 | 黄色av影院 | 国产精品久久久久四虎 | 狠狠干综合 | 在线国产91 | 黄色av影院| 国产精品视频资源 | 一级黄色片在线播放 | 99爱在线观看 | 天天射天天艹 | 九色91av | 狠狠狠狠狠色综合 | 久久黄色免费视频 | 国产黄色在线观看 | 日韩3区 | 日韩色av色资源 | 午夜视频免费 | 91中文字幕视频 | 日韩a级黄色 | 五月婷婷一区二区三区 | 中文字幕精品三区 | 日韩av中文字幕在线免费观看 | 97超碰资源 | 在线欧美日韩 | 国产中年夫妇高潮精品视频 | 亚洲激情婷婷 | 久久99视频 | 精品中文字幕视频 | 五月婷婷婷婷婷 | 久久久九色精品国产一区二区三区 | 制服丝袜亚洲 | 成人性生交视频 | 三级小视频在线观看 | 97免费中文视频在线观看 | 日韩免费在线 | 日本精品免费看 | 亚洲国产人午在线一二区 | 久久久蜜桃一区二区 | 在线天堂亚洲 | 黄色精品在线看 | 国产电影黄色av | 国产精品综合久久久久久 | 欧美日韩精品在线一区二区 | 久久久wwww| 亚洲视频在线观看免费 | 精品中文字幕在线 | 婷婷六月天在线 | 国产又黄又硬又爽 | 国产精品成久久久久三级 | 激情五月激情综合网 | 超碰国产在线 | 91麻豆精品国产91久久久无限制版 | 深爱综合网| 4p变态网欧美系列 | 国产精品九九久久99视频 | av片中文字幕 | 91在线视频观看免费 | 国产黄色av影视 | 成人在线观看免费视频 | 国产自制av | av在线免费网 | 操操操人人人 | 精品久久久久久国产偷窥 | 久草.com| 日本中文乱码卡一卡二新区 | 一区二区三区免费在线 | 岛国av在线 | 精品久久久影院 | 婷婷丁香狠狠爱 | 国产一区免费看 | 天天操·夜夜操 | 中文字幕电影一区 | 91亚洲狠狠婷婷综合久久久 | 97在线精品国自产拍中文 | 婷婷五情天综123 | 99视频在线观看视频 | 91中文字幕在线视频 | 久久精品美女视频 | 欧美作爱视频 | 欧美日韩国产综合网 | 在线免费观看黄色 | 人人爱夜夜操 | 日本在线观看一区 | 五月天伊人 | 精品久久久久久久久久岛国gif | av电影免费在线看 | 亚洲免费视频观看 | 国产蜜臀av | 久久综合亚洲鲁鲁五月久久 | 国产日产av | 99视频久久 | 亚av在线| 天天草天天摸 | 亚洲传媒在线 | 视频一区二区视频 | 午夜免费福利视频 | 91爱爱网址 | 这里只有精品视频在线 | 婷婷精品国产欧美精品亚洲人人爽 | 国模视频一区二区三区 | 超碰人人草 | 五月婷婷中文网 | 在线观看av大片 | 九九久久久久久久久激情 | 99精品国产一区二区三区不卡 | 丰满少妇在线观看网站 | 五月天婷亚洲天综合网鲁鲁鲁 | 久久免费观看视频 | 又黄又爽又无遮挡的视频 | 天天插天天射 | av一区二区三区在线 | 91丨九色丨91啦蝌蚪老版 | 日韩视频一区二区三区在线播放免费观看 | 激情五月婷婷综合网 | 99视频这里只有 | 国产丝袜 | 久久av电影 | 国产传媒一区在线 | 91精品一区二区三区蜜臀 | 91九色在线观看 | 日韩精品一区二区三区外面 | 色婷婷激情综合 | 国产区第一页 | 激情婷婷 | 天天干天天碰 | 欧美日韩免费在线观看视频 | 午夜av网站 | 日韩精品中文字幕久久臀 | 在线观看视频你懂得 | 日韩成人欧美 | 欧美国产日韩一区二区三区 | 一区二区三区四区久久 | 日韩一级电影在线 | 干av在线 | 热久久在线视频 | 国产原创av片 | 91色亚洲| 色偷偷av男人天堂 | 精品视频在线看 | 亚洲视频分类 | 日韩中文字幕免费电影 | 日韩免费一级电影 | 亚洲黑丝少妇 | 色偷偷88888欧美精品久久 | 精品国产一区二区三区四区在线观看 | 色综合久久久网 | 国产字幕在线看 | 99视频免费看 | aaa黄色毛片| 欧美在线视频一区二区三区 | 91在线观| 婷婷五月情| 国产精品普通话 | 日韩中文免费视频 | 在线观看国产成人av片 | 久久久综合香蕉尹人综合网 | 91人人爽久久涩噜噜噜 | 在线看91| 成人综合婷婷国产精品久久免费 | 午夜久久久久久久久久影院 | 99久久综合国产精品二区 | 午夜精品视频一区 | 久久久久久蜜桃一区二区 | 天天操天天干天天综合网 | 国产视频日韩视频欧美视频 | 久草精品在线观看 | 国产精品影音先锋 | 久青草国产在线 | 激情五月开心 | 美女网站在线观看 | 免费看污在线观看 | 黄色免费国产 | 一级免费看| 欧美一区二区在线免费观看 | 青青河边草免费直播 | 丝袜美女在线观看 | 中文字幕免费观看 | 日韩精品在线视频 | 96国产精品视频 | 成人精品在线 | 久久夜色精品国产欧美乱 | 久久久96 | 黄色av网站在线免费观看 | 日日夜夜操操操操 | 日韩va在线观看 | 久草在线网址 | 亚洲精品美女久久 | 久久精品久久久久电影 | 国产精品美女视频网站 | 久久国产经典 | 日韩免费区 | 天天干天天草天天爽 | 国产毛片久久 | 91丨porny丨九色 | 99久久久国产精品免费99 | 一区二区精品国产 | 日韩在线电影观看 | 国内精品久久久久久久久 | 综合网伊人 | 国产在线视频在线观看 | 久久精品国产精品 | 国产一区二区不卡视频 | 91久久久久久国产精品 | 深夜免费福利网站 | 午夜精品久久久久久久99水蜜桃 | 在线看污网站 | 久久久久国产精品厨房 | 国产69精品久久久久久久久久 | 久草精品在线播放 | 中文日韩在线视频 | 久久人人爽爽人人爽人人片av | 欧洲激情综合 | 免费黄色特级片 | 福利视频第一页 | 精品久久久久免费极品大片 | 国产精品久久久99 | av中文在线 | 亚洲黄色片在线 | 色99久久| 久久久久久久综合色一本 | 国产真实在线 | 国产精品免费久久久久影院仙踪林 | 丁香婷婷在线 | 91精彩视频在线观看 | 国产精品视频在线看 | 国产成人在线免费观看 | 亚洲精品美女久久久久 | 国产免费区 | 午夜精品福利一区二区 | 激情综合色播五月 | 中文字幕乱视频 | 久久久www成人免费毛片麻豆 | 久久国产精品影视 | 久久久久日本精品一区二区三区 | 丁香五月网久久综合 | 欧美一二三区在线观看 | 最新动作电影 | 久久国产免 | 视频一区二区视频 | 国产精品21区 | 黄色特一级片 | 国产精品精品久久久久久 | 久久久久久久久久久久久影院 | 中文不卡视频 | 在线 国产 亚洲 欧美 | 亚洲少妇激情 | a天堂在线看 | 免费av免费观看 | 久久看片网 | 免费视频区 | a色视频| 超碰在线94 | 久久综合婷婷 | 五月天精品视频 | 中文字幕av电影下载 | 免费一级特黄毛大片 | 99在线免费观看视频 | 女人18片毛片90分钟 | 成人av在线观 | 国产美女在线免费观看 | 免费观看www小视频的软件 | 一本大道久久精品懂色aⅴ 五月婷社区 | 日日夜夜噜 | 美女免费视频观看网站 | 黄色一级大片免费看 | 久久久久久久毛片 | 啪啪动态视频 | 91精品国产综合久久久久久久 | 天天在线视频色 | 国产视频不卡一区 | 亚洲精品国偷自产在线99热 | 在线影视 一区 二区 三区 | 国产精品你懂的在线观看 | 91亚洲精品久久久久图片蜜桃 | 在线观看精品一区 | 91视频一8mav | www.玖玖玖 | 黄色在线观看污 | 日韩一区二区三区视频在线 | 超碰久热 | 久久久久久高潮国产精品视 | 97在线免费视频观看 | 18国产精品白浆在线观看免费 | 国产中文字幕一区二区三区 | 成人免费中文字幕 | 99草视频| 97精品视频在线播放 | 日韩高清一| 亚洲国产资源 | 男女啪啪免费网站 | 日韩在线观看视频免费 | 国产精品岛国久久久久久久久红粉 | 在线最新av| 精品国产乱码久久久久久三级人 | 亚洲一区二区三区四区在线视频 | 在线观看中文字幕视频 | 一区二区国产精品 | 日韩中文字幕亚洲一区二区va在线 | 亚洲国产久 | 欧美日韩1区2区 | 久久天天躁狠狠躁夜夜不卡公司 | 黄色小说视频网站 | 欧美日韩观看 | 精品久久视频 | 免费久久网 | 亚洲精品视频播放 | 黄色毛片大全 | 国产96在线观看 | 久久久久免费观看 | 一区二区欧美激情 | 久久少妇| 久久免费大片 | 日日干天天 | 人人爱天天操 | 亚洲欧美日韩精品一区二区 | 国产精品v欧美精品 | 国产精品黄色 | 狠狠精品 | 国产精品99久久久久久小说 | 国产精品久久久久久久久久三级 | 亚洲精品99久久久久中文字幕 | 国产91精品一区二区麻豆亚洲 | 午夜影视一区 | 国产系列精品av | 天天干天天上 | 中文av影院| 国内精品久久天天躁人人爽 | 性色av免费在线观看 | www.久久视频 | 亚洲电影毛片 | 免费人做人爱www的视 | 国产成人久久精品一区二区三区 | 国产高清在线观看av | 久久精品一区 | 日韩中文字幕免费电影 | 亚洲欧美偷拍另类 | 久久久在线视频 | 91精品毛片| 亚洲免费公开视频 | 西西444www大胆高清视频 | 久久成人午夜视频 | 日韩aa视频 | 亚洲精品午夜一区人人爽 | 久久久999 | 视频二区在线 | 成人动漫一区二区三区 | 97视频免费播放 | 一区二区三区日韩在线观看 | 午夜婷婷在线播放 | 天天综合久久综合 | 日韩在线视频看看 | 国产精选在线 | 午夜av免费 | 国产精品美女久久久久久2018 | 98超碰在线 | 亚洲精品高清一区二区三区四区 | 国产最新福利 | 超碰av在线免费观看 | 精品毛片一区二区免费看 | 又色又爽的网站 | 天天曰夜夜爽 | 日韩免费视频一区二区 | 色婷婷视频在线 | 亚洲mv大片欧洲mv大片免费 | 天天av综合网 | 91麻豆看国产在线紧急地址 | 九九热视频在线 | av在线播放亚洲 | 国产一二三四在线视频 | 在线观av | 欧美二区视频 | 欧美激情综合色综合啪啪五月 | 视频高清 | 成人教育av | 四虎国产视频 | av中文字幕av| 日韩欧美在线观看一区二区 | 97超碰人人 | 天天操天天干天天玩 | 成人国产精品av | 久久久久久久久久久电影 | 日本免费一二三区 | 最近中文字幕mv免费高清在线 | 日韩欧美综合精品 | 黄色成人av在线 | 精品久久久久久久久久久久久 | 五月婷婷在线观看 | 日韩免费观看av | 色天天综合久久久久综合片 | 国产亚洲欧美日韩高清 | 欧美色黄 | 欧美精品久久久久久久免费 | 久久综合色播五月 | 久久久久北条麻妃免费看 | 日韩电影一区二区三区 | 最近乱久中文字幕 | 日韩精品免费在线视频 | 在线国产能看的 | 亚洲国产经典视频 | 99热这里是精品 | 国产精品6999成人免费视频 | 99国产精品久久久久老师 | 日本中文字幕久久 | 婷婷色 亚洲 | 在线视频专区 | 97人人爽| 国产精品久久久久国产精品日日 | 免费看麻豆 | 麻豆视传媒官网免费观看 | 美女网站在线播放 | 99超碰在线观看 | 色www.| 精品国产成人av在线免 |