久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

Android運(yùn)動(dòng)健康睡眠自定義控件的實(shí)現(xiàn)

瀏覽:3日期:2022-09-20 08:56:39
效果圖

Android運(yùn)動(dòng)健康睡眠自定義控件的實(shí)現(xiàn)

代碼

/** * * 日?qǐng)D表 * zrj 2020/8/25 */class SleepDayChart(context: Context, attrs: AttributeSet?) : View(context, attrs) { //屏幕寬高 private var scrWidth = 0f private var scrHeight = 0f private var xData: Array<String> = arrayOf('20:00', '02:00', '08:00', '14:00', '20:00') private var sleepsData: Sleep? = null private lateinit var paintLine: Paint private lateinit var paintGradientLine: Paint private lateinit var paintXText: Paint private lateinit var paintSleep: Paint private lateinit var paintPillar: Paint private lateinit var paintRound: Paint private lateinit var paintBessel: Paint private var xSlider = 0f //滑塊的x軸位置 private var mPath: Path private val curveCircleRadius = 12f.dp // the coordinates of the first curve private val mFirstCurveStartPoint = Point() private val mFirstCurveEndPoint = Point() private val mFirstCurveControlPoint1 = Point() private val mFirstCurveControlPoint2 = Point() //the coordinates of the second curve private var mSecondCurveStartPoint = Point() private val mSecondCurveEndPoint = Point() private val mSecondCurveControlPoint1 = Point() private val mSecondCurveControlPoint2 = Point() init { setLayerType(LAYER_TYPE_SOFTWARE, null) mPath = Path() initPaint() } /** * 初始化畫筆 */ private fun initPaint() { paintLine = Paint() paintLine.style = Paint.Style.STROKE paintLine.strokeWidth = 1f paintLine.color = context.colorCompat(R.color.e6e6e6_2e2e2e) paintGradientLine = Paint() paintGradientLine.style = Paint.Style.STROKE paintGradientLine.strokeWidth = 1f paintXText = Paint() paintXText.isAntiAlias = true paintXText.strokeWidth = 1f paintXText.textSize = 12f.sp paintXText.textAlign = Paint.Align.CENTER paintXText.color = context.colorCompat(R.color.color_on_surface) paintSleep = Paint() paintSleep.style = Paint.Style.FILL paintSleep.isAntiAlias = true paintSleep.color = context.colorCompat(R.color.blue_7fbeff) paintPillar = Paint() paintPillar.style = Paint.Style.FILL paintPillar.isAntiAlias = true paintPillar.color = context.colorCompat(R.color.blue_7fbeff) paintRound = Paint() paintRound.style = Paint.Style.FILL paintRound.isAntiAlias = true paintRound.color = context.colorCompat(R.color.ffffff_6e6e6e) paintBessel = Paint() paintBessel.style = Paint.Style.FILL paintBessel.isAntiAlias = true paintBessel.color = context.colorCompat(R.color.f2f2f2_1d1d1d) } override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { super.onSizeChanged(w, h, oldw, oldh) scrWidth = width.toFloat() scrHeight = height.toFloat() ySpacing = scrHeight / 8f //y軸分8份 //底部圓滑塊可以滑動(dòng)的范圍 xWithStart = margin * 3 xWithEnd = scrWidth - margin * 3 xSlider = scrWidth / 2 xSpacing = (xWithEnd - xWithStart) / (xData.size - 1) } override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { parent.requestDisallowInterceptTouchEvent(true) return super.dispatchTouchEvent(ev) } private var mDownX = 0f private var mDownY = 0f private var isSlider = false @SuppressLint('ClickableViewAccessibility') override fun onTouchEvent(event: MotionEvent): Boolean { when (event.action) { MotionEvent.ACTION_DOWN -> {mDownX = event.xmDownY = event.yisSlider = abs(event.x - xSlider) < 60f && abs(event.y - ySpacing * 7) < 60freturn isSlider } MotionEvent.ACTION_MOVE ->if (abs(event.y - mDownY) < abs(event.x - mDownX)) { if (isSlider) { xSlider = event.x if (xSlider < xWithStart) { xSlider = xWithStart } if (xSlider > xWithEnd) { xSlider = xWithEnd } invalidate() }} MotionEvent.ACTION_UP -> {if (!isSlider) { if (abs(event.x - mDownX) < curveCircleRadius) { xSlider = event.x invalidate() }} } } return true } private val margin = 20f.dp //左右兩邊距離 private var xWithStart = 0f //x軸的起始點(diǎn) private var xWithEnd = 0f //x軸結(jié)束點(diǎn) private var ySpacing = 0f //高度分割份數(shù)后間距 private var xSpacing = 0f //x軸分割份數(shù)后間距 @SuppressLint('DrawAllocation') override fun onDraw(canvas: Canvas) { super.onDraw(canvas) //畫柱子 drawPillar(canvas) //垂直漸變線 drawGradientLine(canvas) //底部 drawBessel(canvas) //畫x軸方向文字 drawX(canvas) } private fun drawX(canvas: Canvas) { if (sleepsData == null) { xData.forEachIndexed { index, s ->val x = xWithStart + xSpacing * indexval dis = abs(x - xSlider)var y = ySpacing * 7 - 10f.dpif (dis < xSpacing / 2) { paintXText.typeface = Typeface.DEFAULT_BOLD y -= 10f.dp * (1 - dis / xSpacing)} else { paintXText.typeface = Typeface.DEFAULT}canvas.drawText(s, x, y, paintXText)if (index == 0) { canvas.drawText(startDay, x, y - 12f.dp, paintXText)}if (index == xData.size - 1) { canvas.drawText(endDay, x, y - 12f.dp, paintXText)} } } else { sleepsData?.let {val start = DateTime(it.items[0].timeStamp * 1000)val asleep = start.hourOfDay * 60 + start.minuteOfHourval end = DateTime(it.items.last().timeStamp * 1000)val wakeUp = end.hourOfDay * 60 + end.minuteOfHour + it.items.last().durationval s1 = '${context.getString(R.string.bed_time)} ${asleep / 60}:${if (asleep % 60 < 10) '0' else ''}${asleep % 60}'val dis1 = abs(xWithStart + paintXText.measureText(s1) / 2 - xSlider)var y1 = ySpacing * 7 - 10fif (dis1 < curveCircleRadius * 3) { paintXText.typeface = Typeface.DEFAULT_BOLD var temp = 1 - dis1 / curveCircleRadius * 2 if (temp < 0f || temp > 1f) { temp = 1f } y1 -= 60f * temp} else { paintXText.typeface = Typeface.DEFAULT}canvas.drawText(s1, xWithStart, y1, paintXText)canvas.drawText(startDay, xWithStart, y1 - 40f, paintXText)val hour = '${if (wakeUp / 60 < 10) '0' else ''}${wakeUp / 60}'val minute = '${if (wakeUp % 60 < 10) '0' else ''}${wakeUp % 60}'val s2 = '${context.getString(R.string.rise_time)} $hour:$minute'val dis2 = abs(xWithEnd - paintXText.measureText(s2) / 2 - xSlider)var y2 = ySpacing * 7 - 10fif (dis2 < curveCircleRadius * 3) { paintXText.typeface = Typeface.DEFAULT_BOLD y2 -= 60f * (1 - dis2 / (xSlider - curveCircleRadius * 3))} else { paintXText.typeface = Typeface.DEFAULT}canvas.drawText(s2, xWithEnd, y2, paintXText)canvas.drawText(endDay, xWithEnd, y2 - 40f, paintXText) } } } private fun drawPillar(canvas: Canvas) { var top = 0f var bottom = 0f var preDuration = 0 //前一狀態(tài)時(shí)長 var duration = 0 //時(shí)間累加 var tempTop = 0f var tempBottom: Float var startColor = 0 var endColor = 0 val colors = intArrayOf(startColor, endColor) sleepsData?.let { it.items.forEachIndexed { index, item ->when (item.status) { 3, 4 -> { //清醒 endColor = Color.parseColor('#fdc221') paintSleep.color = Color.parseColor('#fdc221') paintPillar.color = Color.parseColor('#f9eec1') top = 1f bottom = 2f } 12 -> { //快速眼動(dòng) endColor = Color.parseColor('#fd817c') paintSleep.color = Color.parseColor('#fd817c') paintPillar.color = Color.parseColor('#4dfd817c') top = 2f bottom = 3f } 0, 1 -> { //淺 endColor = Color.parseColor('#c64be4') paintSleep.color = Color.parseColor('#c64be4') paintPillar.color = Color.parseColor('#e8c3f1') top = 3f bottom = 4f } 2 -> { //深 endColor = Color.parseColor('#8a2be2') paintSleep.color = Color.parseColor('#8a2be2') paintPillar.color = Color.parseColor('#d6b9f1') top = 4f bottom = 5f }}if (xSlider < xWithStart + xSpacing * (duration + item.duration) && xSlider > xWithStart + xSpacing * duration) { onDaySelectListener?.invoke(index, item) canvas.drawRect( RectF( xWithStart + xSpacing * duration, ySpacing * top + 10f, xWithStart + xSpacing * (duration + item.duration), ySpacing * 7 ), paintPillar )}canvas.drawRoundRect( RectF( xWithStart + xSpacing * duration - 1f, ySpacing * top, xWithStart + xSpacing * (duration + item.duration) + 1f, ySpacing * bottom ), 10f, 10f, paintSleep)if (index > 0 && index < it.items.size) { if (tempTop < top) { tempTop += 0.9f tempBottom = bottom - 0.9f colors[0] = startColor colors[1] = endColor if (xSpacing * preDuration > 10f) { val path1 = Path() path1.moveTo(xWithStart + xSpacing * duration, ySpacing * tempTop) path1.lineTo(xWithStart + xSpacing * duration - 8f,ySpacing * tempTop + 6f ) path1.lineTo(xWithStart + xSpacing * duration, ySpacing * tempTop + 12f) path1.close() paintSleep.color = startColor canvas.drawPath(path1, paintSleep) } if (xSpacing * item.duration > 10f) { val path2 = Path() path2.moveTo(xWithStart + xSpacing * duration, ySpacing * tempBottom) path2.lineTo(xWithStart + xSpacing * duration + 8f,ySpacing * tempBottom - 6f ) path2.lineTo(xWithStart + xSpacing * duration,ySpacing * tempBottom - 12f ) path2.close() paintSleep.color = endColor canvas.drawPath(path2, paintSleep) } } else { tempBottom = tempTop + 0.1f tempTop = bottom - 0.1f colors[0] = endColor colors[1] = startColor if (xSpacing * preDuration > 10f) { val path1 = Path() path1.moveTo(xWithStart + xSpacing * duration, ySpacing * tempBottom) path1.lineTo(xWithStart + xSpacing * duration - 8f,ySpacing * tempBottom - 6f ) path1.lineTo(xWithStart + xSpacing * duration,ySpacing * tempBottom - 12f ) path1.close() paintSleep.color = startColor canvas.drawPath(path1, paintSleep) } if (xSpacing * item.duration > 10f) { val path2 = Path() path2.moveTo(xWithStart + xSpacing * duration, ySpacing * tempTop) path2.lineTo(xWithStart + xSpacing * duration + 8f,ySpacing * tempTop + 6f ) path2.lineTo(xWithStart + xSpacing * duration, ySpacing * tempTop + 12f) path2.close() paintSleep.color = endColor canvas.drawPath(path2, paintSleep) } } val mLinearGradient = LinearGradient( xWithStart + xSpacing * duration, ySpacing * tempTop, xWithStart + xSpacing * duration, ySpacing * tempBottom, colors, null, Shader.TileMode.MIRROR ) paintGradientLine.shader = mLinearGradient canvas.drawLine( xWithStart + xSpacing * duration, ySpacing * tempTop, xWithStart + xSpacing * duration, ySpacing * tempBottom, paintGradientLine )}tempTop = toptempBottom = bottompreDuration = item.durationduration += item.durationstartColor = endColor } } } private fun drawBessel(canvas: Canvas) { // 第一條曲線開始點(diǎn) mFirstCurveStartPoint[(xSlider - curveCircleRadius * 3).toInt()] = (ySpacing * 7).toInt() // 第一條曲線結(jié)束點(diǎn) mFirstCurveEndPoint[xSlider.toInt()] = (ySpacing * 7 - curveCircleRadius - curveCircleRadius / 4).toInt() // 第二條開始點(diǎn) mSecondCurveStartPoint = mFirstCurveEndPoint mSecondCurveEndPoint[(xSlider + curveCircleRadius * 3).toInt()] = (ySpacing * 7).toInt() // 第一條控制點(diǎn) mFirstCurveControlPoint1[(mFirstCurveStartPoint.x + curveCircleRadius + curveCircleRadius / 4).toInt()] = mFirstCurveStartPoint.y mFirstCurveControlPoint2[(mFirstCurveEndPoint.x - curveCircleRadius * 2 + curveCircleRadius).toInt()] = mFirstCurveEndPoint.y // 第二條控制點(diǎn) mSecondCurveControlPoint1[(mSecondCurveStartPoint.x + curveCircleRadius * 2 - curveCircleRadius).toInt()] = mSecondCurveStartPoint.y mSecondCurveControlPoint2[(mSecondCurveEndPoint.x - curveCircleRadius - curveCircleRadius / 4).toInt()] = mSecondCurveEndPoint.y mPath.reset() mPath.moveTo(0f, ySpacing * 7) mPath.lineTo(mFirstCurveStartPoint.x.toFloat(), mFirstCurveStartPoint.y.toFloat()) mPath.cubicTo( mFirstCurveControlPoint1.x.toFloat(), mFirstCurveControlPoint1.y.toFloat(), mFirstCurveControlPoint2.x.toFloat(), mFirstCurveControlPoint2.y.toFloat(), mFirstCurveEndPoint.x.toFloat(), mFirstCurveEndPoint.y.toFloat() ) mPath.cubicTo( mSecondCurveControlPoint1.x.toFloat(), mSecondCurveControlPoint1.y.toFloat(), mSecondCurveControlPoint2.x.toFloat(), mSecondCurveControlPoint2.y.toFloat(), mSecondCurveEndPoint.x.toFloat(), mSecondCurveEndPoint.y.toFloat() ) mPath.lineTo(scrWidth, ySpacing * 7) mPath.lineTo(scrWidth, scrHeight) mPath.lineTo(0f, scrHeight) mPath.close() //底部灰色 canvas.drawPath(mPath, paintBessel) //底部滑塊 canvas.drawCircle(xSlider, ySpacing * 7 + 5f, curveCircleRadius, paintRound) } private var startDay = '' private var endDay = '' fun setValue(value: Sleep?, startDay: String, endDay: String): SleepDayChart { this.startDay = startDay this.endDay = endDay this.sleepsData = value if (sleepsData == null) { xSpacing = (xWithEnd - xWithStart) / (xData.size - 1) } else { sleepsData?.let {xSpacing = (xWithEnd - xWithStart) / it.total //時(shí)間段分割成分鐘 } } postInvalidate() return this } private fun drawGradientLine(canvas: Canvas) { if (sleepsData == null) { canvas.drawText(context.getString(R.string.no_sleep_data),scrWidth / 2f,scrHeight / 2f,paintXText ) } else { val mLinearGradient = LinearGradient(xSlider, ySpacing, xSlider, ySpacing * 6,intArrayOf( context.colorCompat(R.color.ffffff_262626), Color.parseColor('#0e83ff'), context.colorCompat(R.color.ffffff_262626)), null, Shader.TileMode.MIRROR ) paintGradientLine.shader = mLinearGradient if (ySpacing > 0) {canvas.drawLine(xSlider, ySpacing, xSlider, ySpacing * 6, paintGradientLine) } } } private var onDaySelectListener: ((index: Int, item: SleepItem) -> Unit)? = null fun setOnDaySelectListener(l: ((index: Int, item: SleepItem) -> Unit)): SleepDayChart { this.onDaySelectListener = l return this }}

以上就是Android實(shí)現(xiàn)運(yùn)動(dòng)健康睡眠自定義控件的詳細(xì)內(nèi)容,更多關(guān)于Android 實(shí)現(xiàn)自定義控件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 毛片99 | 男人天堂网av | 亚洲成人免费观看 | 久久中文字幕一区 | 日本在线视频不卡 | 国产一区久久 | 99久久婷婷国产精品综合 | 欧美一区二区视频 | 国产第99页| 亚洲人成在线观看 | 国产一区二区自拍视频 | 国产精品一区二区三区四区 | 香蕉大人久久国产成人av | 99免费观看视频 | 国产干干干 | 国产羞羞视频免费在线观看 | 蜜桃官网 | 日韩成人在线网 | 亚洲国产精品18久久 | 综合色综合 | 成年人黄色一级片 | 精品免费久久久久久久苍 | 国产成人精品av | 亚洲一区二区av | 精品欧美一区二区三区久久久小说 | 91麻豆精品国产91久久久久久 | 欧美自拍视频在线观看 | 91综合网 | 日韩在线永久免费播放 | 亚洲精品资源在线观看 | 欧美日日干 | 久久人人爽爽爽人久久久 | 亚洲成人免费视频 | 免费观看黄色一级大片 | 国久久久 | 一二三区精品 | 亚洲精品久久久久久下一站 | 日本a视频 | 国产v日产∨综合v精品视频 | 日韩三级电影在线免费观看 | 久久国内精品 | 成人一区二区电影 | 一级黄色毛片免费观看 | 欧美人人 | 国产免费av在线 | 亚洲成年| 日本精品视频在线观看 | 日韩高清国产一区在线 | 久久精品网 | 国产成人精品免费 | 国产精品夜色一区二区三区 | 九色porny国模私拍av | 亚洲高清视频在线观看 | 99av| 久久久在线 | 久久久二 | 激情综合色综合久久综合 | 日韩国产欧美一区 | 久久久美女 | 国产精品福利在线 | 日韩一二三区视频 | 亚洲一区免费视频 | 天堂资源在线 | 蜜桃免费视频 | 亚洲一区二区中文 | 欧美一级欧美三级在线观看 | www.av在线| k8久久久一区二区三区 | 日韩在线播放一区 | 黄色一级电影 | 国产成人天天爽高清视频 | 日日操夜夜 | 最近中文字幕在线视频1 | 亚洲欧洲视频 | 日韩午夜免费视频 | 色综合久久88色综合天天 | 国产精品美女久久久久aⅴ国产馆 | 国产日韩一区 | 看特级毛片 | 青青久视频| 99免费精品 | 免费一级欧美在线观看视频 | 久久99一区二区 | 日本狠狠操 | 久久久久亚洲精品国产 | 国产精品视频 | 一区二区三区日韩 | 97精品国产97久久久久久粉红 | 日韩视频一区二区三区在线观看 | 青青草一区 | 天天拍天天干天天操 | 五月激情综合网 | www.se天堂| 毛片一区二区 | 成人在线观看中文字幕 | 国产日韩欧美在线 | 狠狠爱www人成狠狠爱综合网 | 精品国产乱码一区二区三区 | 精品人伦一区二区三区蜜桃视频 | av免费黄色| 日韩激情视频一区二区 | 免费亚洲一区二区 | 亚洲综合色自拍一区 | 久久综合久久久 | 久久另类ts人妖一区二区 | 亚洲国产成人久久综合一区,久久久国产99 | 黄色影片网址 | 日本午夜影院 | 日韩精品视频在线播放 | 在线播放国产视频 | 日韩欧美一级 | 日日夜夜一区二区 | 一区二区三区视频在线播放 | 99精品一区二区 | 日韩色视频 | 欧美视频综合 | 国产精品久久久精品 | 亚洲国产成人在线 | 午夜精品一区 | 国产精品久久一区 | 欧美成人综合视频 | 午夜视频 | 日本精品视频在线观看 | 91亚洲国产| 色婷婷激情 | 中文字幕第18页 | 91色乱码一区二区三区 | 九色在线播放 | 蜜桃一区| 久久久久国产一级毛片 | 天堂一区二区三区 | 久久精品性 | 日本一区二区三区四区 | 青青久久| 中文字幕亚洲一区 | 爱操av| 日批免费在线观看 | 天天天操| 视色视频在线观看 | 久久一 | 欧美日韩综合在线 | 精品中文字幕一区二区三区 | 亚洲日本午夜 | 久久久久久亚洲精品视频 | 黄网在线观看 | 日本黄色毛片 | 成人精品视频免费在线观看 | 最近中文字幕免费观看 | 国产精品一码二码三码在线 | 精品视频一区二区三区 | 国产精品久久久久久亚洲调教 | 成人亚洲一区二区 | 日本不卡免费新一二三区 | 国产一级一级毛片女人精品 | 国产美女永久免费无遮挡 | 久久久久国产一区二区三区 | 欧美在线观看一区二区 | 亚洲成人精品一区 | 国产精品999 | 成人激情视频 | 国产欧美久久久久久 | 国产成人精品久久 | 97成人在线| 亚洲精品国产综合区久久久久久久 | 国产农村妇女精品一二区 | 中文字幕在线观看第一页 | 精品成人国产 | 天天曰天天曰 | 宅男伊人 | 福利二区视频 | 久久免费国产精品 | 国产一区二区视频免费看 | 中文字幕在线观看1 | 精品久久香蕉国产线看观看亚洲 | 亚洲精品一二三四五区 | 国产中文字幕一区 | 在线不卡a资源高清 | 国产精品免费视频一区 | 青青伊人久久 | 国产做a爰片久久毛片a我的朋友 | 一级电影免费在线观看 | 久久国产电影 | 成人久久久久久久久 | 久久精品这里热有精品 | 久久久精品久久久久 | 91精品国产91综合久久蜜臀 | 99爱视频| 亚洲成人av | 国精产品一区二区三区有限公司 | 日本成人午夜影院 | 欧美视频免费在线观看 | 久久精品91久久久久久再现 | 亚洲国产成人久久一区二区三区 | 国产视频精品在线观看 | 欧美精品在线观看 | 精品国产影院 | 国产精品国色综合久久 | 久久久久久成人 | 午夜精品一区二区三区免费视频 | 亚洲精品电影 | 91精品国产乱码久久久久久久久 | 欧美永久精品 | 天天澡天天狠天天天做 | 国产精品一区二区av | 狠狠操综合网 | 精品久久久久久久久久久 | 精品亚洲一区二区三区四区五区 | 日韩成人中文字幕 | 国产精品久久久久久亚洲调教 | 亚洲伦理影院 | 日本在线观看 | 午夜精品一区二区三区四区 | 日韩在线看片 | 女人爽到高潮aaaa电影 | 久久久亚洲精品中文字幕 | 在线日韩视频 | 午夜影院在线免费观看 | 国产三级黄色毛片 | 日韩精品一区二区三区在线播放 | 国产一级视频在线播放 | 亚洲一区二区三区在线视频 | 成人网av | 毛片网站大全 | 欧美一区二区三区电影 | 日韩91 | 午夜精品视频 | 人人澡人人射 | 自拍视频在线 | 91国内精品| 黄网免费 | 久草福利 | 激情开心成人网 | 欧美一级淫片免费看 | 亚洲综合欧美日韩 | 中文字幕精品一区 | 欧洲精品一区二区 | 97在线观看| 亚洲一区二区三区四区的 | 一级特黄毛片 | 欧美视频成人 | 狠狠色狠狠色综合网 | 亚洲成av人片一区二区梦乃 | 国产午夜精品福利 | 天天澡天天狠天天天做 | 激情五月婷婷 | 在线日韩视频 | 精品黄网| 中文字幕欧美日韩 | 色性视频 | 日韩欧美一区二区三区免费观看 | 高清三区| 亚洲一区二区在线视频 | 伊人激情影院 | 欧美成人性生活视频 | 九色在线| 日本成人中文字幕在线观看 | 一区二区三区四区在线播放 | 日韩精品一区二区三区在线播放 | 日本在线黄色 | 欧美精品一区二区在线观看 | 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 日本免费视频 | 国产精品国产三级国产aⅴ 羞羞的视频在线 | 男女啪网站 | 国产精品三级在线 | 亚洲精品一区二区在线观看 | 精品一区二区三区三区 | 精品国产一区二区三区久久影院 | 一区二区久久 | 国产成人视屏 | 免费观看日韩一级片 | 中文字幕在线播放不卡 | 成人在线免费 | 久久久99精品免费观看 | 日韩福利在线 | 黄色一级网址 | 欧美精品成人在线视频 | 亚洲精品亚洲人成人网 | 色婷婷导航 | 一区二区中文字幕 | 国产精品视屏 | 国产精品一区二区三区免费 | 亚洲欧美第一页 | 天天操天天干天天插 | 91精品国产日韩91久久久久久 | 91精品久久久久久久久 | 在线看片成人 | 色综合天天综合网国产成人网 | 国产一区二区三区在线 | 国产成人在线视频 | 久草青青| 国产美女精品人人做人人爽 | 国产成人精品一区二区三区四区 | 精品国产乱码久久久久久影片 | 欧美片网站免费 | 就操成人网| 精品人伦一区二区三区蜜桃视频 | 一区二区三 | 在线欧美日韩 | 水卜樱一区二区av | 成人在线影视 | 中文字幕亚洲在线 | 激情六月婷 | japanhd熟睡侵犯 | 三级黄色在线视频 | 欧美综合国产精品久久丁香 | 国产精品久久久久久久久久久久久久久久 | 国产欧美日韩综合精品一区二区 | 91精品国产综合久久婷婷香蕉 | 欧美日在线 | 一区二区三区四区免费观看 | 黄色免费高清视频 | 国产精品久久久久久 | 嫩草视频在线播放 | 成人久久18| 国产情侣自拍啪啪 | 日日人人 | 中文字幕乱码亚洲精品一区 | 欧美激情在线播放 | 亚洲人久久 | 日韩精品免费在线视频 | 国产高清美女一级a毛片久久 | 久久成人综合网 | 男人的天堂久久 | 欧美精品一区二区三区四区 | 午夜精品一区二区三区在线播放 | 一区二区三区欧美在线 | 国产激情综合五月久久 | 免费观看毛片 | 91视频在线观看 | 欧美日韩一区二区电影 | 亚洲高清在线观看 | 久草在线| 亚洲视频在线观看免费 | 免费视频爱爱太爽了 | 综合网亚洲 | 国产亚洲一区二区在线 | 中文乱码一区 | 国产精品美女 | 在线一区| 成年人网站国产 | 三级特黄特色视频 | 91视频在线网址 | 日本三级视频 | 国产精品久久久久久久久 | 亚洲国产成人在线 | a级片网站 | 天天噜天天干 | 久久一级 | 午夜激情免费看 | 成人亚洲| 色综合天天综合网国产成人网 | 国产精品对白一区二区三区 | 午夜欧美一区二区三区在线播放 | 永久91嫩草亚洲精品人人 | 日韩欧美一区二区三区久久婷婷 | 亚洲男人的天堂网站 | 欧美精品久久久 | 久草av在线播放 | 精品国产31久久久久久 | 在线观看欧美一区 | 一区二区三区四区在线 | 97国产在线视频 | 美女在线视频一区二区 | 日韩激情网 | 久草综合在线 | 成人在线h| 自拍偷拍精品 | 国产成人免费视频网站视频社区 | av高清在线免费观看 | 久久二区三区 | 国产精品三级久久久久久电影 | 免费视频成人 | 精品久久久久久国产 | 国产精品99久久 | 欧美成人精品一区二区男人看 | 欧美精品tv | 91福利视频导航 | h视频网站在线 | 久久精品亚洲 | av电影手机在线看 | 视频二区 | 成人日韩在线观看 | 日韩精品中文字幕一区二区三区 | 日韩中文在线观看 | 日韩午夜电影 | 午夜私人影院在线观看 | 精品国产高清一区二区三区 | 亚洲欧美在线一区二区 | 欧洲美女7788成人免费视频 | 91精品国产欧美一区二区 | 日韩不卡一区二区 | 欧美亚洲一区 | 欧美成人精品激情在线观看 | 偷偷干夜夜拍 | 嫩草影院网站入口 | 国产精品69毛片高清亚洲 | 亚洲一区 中文字幕 | 婷婷久久综合 | 久久一级 | 国产精品99久久久久久www | www.日韩 | 久久先锋| 精品久久久久久国产 | 久久久精彩视频 | 一区二区av| 综合在线视频 | 日韩性网站 | 蜜月久综合久久综合国产 | 亚洲精品aaa | 国产精品久久久一区 | 成人影院av | 久久伊人操 | 国产欧美一区二区三区国产幕精品 | 最新的黄色网址 | 日韩欧美精品区 | 国产视频9999 | 欧美国产精品一区二区 | 日韩高清国产一区在线 | 国产另类ts人妖一区二区 | 青草视频网站 | 青青草av | 秋霞在线一区 | 一区二区三区视频 | 久久亚洲一区 | 波多野结衣电影一区 | 成人午夜精品一区二区三区 | 成人午夜精品 | 在线日韩 | 性色在线视频 | 欧美精品一区二区三区在线 | 久久精品免费视频播放 | 日韩免费激情视频 | 精品久久亚洲 | 国产99久久久精品视频 | 亚洲一区二区在线 | 国产高清美女一级a毛片久久 | 国产免费高清 | 中文字幕免费看 | 中文字字幕一区二区三区四区五区 | 97av| 成全视频免费观看在线看黑人 | 最新日韩免费 | 国产精品亚洲成在人线 | 欧美日韩一区二区中文字幕 | 求av网址 | 欧美视频一二 | 亚洲一区视频 | 四虎免费在线播放 | 麻豆久久| 伊人av在线 | 成人免费看电影 | 欧美一级免费播放 | 人人看人人草 | 国产精品综合 | 国产免费av在线 | 国产小视频网站 | 三级av | 人人澡人人草 | 久久久久久久久成人 | 亚洲人成人一区二区在线观看 | 日韩污视频在线观看 | 日日爱夜夜爽 | 国产精品久久久久久久久动漫 | 欧洲美女7788成人免费视频 | 色网站免费视频 | 成人精品 | 久久91| 亚洲免费视频一区 | 久久成人一区 | 中文字幕视频三区 | 欧美黑人巨大xxx极品 | 91九色视频pron | 久久人人av | 在线免费观看色视频 | 国产成人影院在线观看 | 视频成人免费 | 国产色黄视频 | 久久精品亚洲精品国产欧美 | 天堂视频在线 | 久久久免费电影 | 97国产在线视频 | 国产网站在线播放 | 国产精品自产av一区二区三区 | 久久国产成人午夜av影院宅 | 一区二区三区国产精品 | 久久免费国产精品 | 一区二区网站 | 精品久久久久久久久久久久久久 | 久久国产经典视频 | 欧美一级一区 | 免费国产一区二区 | 毛片网站大全 | 日韩在线视频一区 | 国产一二三区在线观看 | 久久都是精品 | 91久久国产综合久久蜜月精品 | 黑人巨大精品欧美一区免费视频 | 欧美激情一区二区三区四区 | 成人精品视频一区二区三区 | 操久久| 天天干天天草 | 国产精品久久久久久久久免费桃花 | 中文字幕视频在线观看 | 国产精品久久久久久久岛一牛影视 | 91精品国产91久久久久久吃药 | 成人男女激情免费视频 | 91社区在线观看高清 | 国产成人精品一区二区三区四区 | 亚洲精选一区 | 四虎免费紧急入口观看 | 欧美日韩视频一区二区 | 日本久久成人 | 一区日韩| 天天澡天天狠天天天做 | 欧美色成人 | 日本成片视频 | 国产一区在线视频 | 91久久久久久久久久久久久久久久 | 欧美成人一区二区三区片免费 | 国产成人精品一区二区在线 | 国产精品不卡 | 国产超碰人人爽人人做人人爱 | 亚洲精品久久久久久一区二区 | 国产精品久久久久久久久久久久久久 | 操操操操操操 | 91久久国产综合久久蜜月精品 | 欧美1区2区3区 | 久久久性色精品国产免费观看 | 一区中文字幕 | 成人黄色一级网站 | 精品一区二区三区久久 | 中文在线视频 | 天天干天天爽 | 午夜久久乐| www免费网站在线观看 | 国产一级特黄aaa大片 | 日本在线一区 | 久久九九国产 | 一区二区三区欧美在线 | 91精品久久久久久久久久入口 | www.中文字幕在线 | 美女91| 免费一级欧美在线观看视频 | 中文学幕专区 | 色橹橹欧美在线观看视频高清 | 精品欧美一区二区三区久久久 | 亚洲协和影视 | 国产一区二区在线播放 | 国产精品福利在线观看 | 懂色av一区二区三区在线播放 | 日韩免费在线 | 国产乱码精品一区二区三区手机版 | 一级一级一级毛片 | 午夜精品一区二区三区四区 | 国产精品精品视频一区二区三区 | 久久亚洲美女 | 91一级 | 精品美女久久久 | www.成人久久 | 欧美国产在线观看 | 欧美一级片在线观看 | 91精品国产综合久久国产大片 | 日韩欧美一区二区三区免费观看 | 干中文字幕 | 日韩在线高清视频 | 男人的天堂视频网站 | 国产精品久久久久久久久久 | 国产精品国色综合久久 | 欧美精品在线一区 | 日本一区二区中文字幕 | 久久99精品国产91久久来源 | 午夜精品一区二区三区在线 | 成人综合网站 | 国产美女久久久 | 亚洲aⅴ天堂av在线电影软件 | 夜夜av | 国产精品国产三级国产aⅴ无密码 | 99r在线| 涩涩视频在线看 | 国产做a爰片久久毛片a我的朋友 | 国产亚洲精品久久久久动 | 国产成人涩涩涩视频在线观看 | 欧美精品一区二区在线观看 | 在线观看视频一区 | 成人三级视频网站 | 欧美激情精品久久久久久 | 国产精品a久久久久 | 亚洲成人精品 | 成人免费在线播放 | 国产在线视频一区 | 成人高清在线观看 | 久久成人免费 | 日韩最新网址 | 欧美日韩精品一区二区 | 九一精品| 亚洲免费不卡视频 | 成人免费视频在线观看 | 日韩成人av在线 | 亚洲一区二区三区在线免费观看 | 久久国产电影 | 精品www | 国产精品免费看 | 欧美精品一区二区三区在线四季 | 国产精品二区一区二区aⅴ污介绍 | 超碰在线看 | 日韩欧美一级精品久久 | 九色91| 精品成人网 | 亚洲视频一区二区在线 | 美女黄视频网站 | 91精品在线观看入口 | 99re6在线视频精品免费 | 日本不卡高字幕在线2019 | 久久久精品免费看 |