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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android动画效果-更新中

發布時間:2025/3/21 Android 86 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android动画效果-更新中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

Android系統提供了三種實現動畫的方式,一種是補間動畫(Tween Animation 在SDK中成為View Animation),另一種是幀動畫(Frame Animation 在SDK中稱為Drawable Animation) ,第三種 屬性動畫(property animation )。

  • 補間動畫可以實現View組件的移動、放大、縮小以及漸變等效果
  • 幀動畫則提供了一種逐幀播放圖片的動畫方式
  • 屬性動畫-補間動畫和幀動畫不能勝任復雜動畫,所以屬性動畫應運而生

無論是補間動畫還是幀動畫或者是屬性動畫,Android均為其進行了封裝,提供了非常簡單的應用接口。

3.0以前,android支持兩種動畫模式,tween animation,frame animation,在android3.0中又引入了一個新的動畫系統:property animation。

這三種動畫模式在SDK中被稱為
view animation,
drawable animation,
property animation。

可通過NineOldAndroids項目在3.0之前的系統中使用Property Animation。


下面我們分別詳細的介紹下這三種動畫的使用。

補間動畫(Tween Animation/View Animation)

Animation類,動畫抽象類

Animation類是Android系統的一個動畫抽象類,所有其他一些動畫類都要繼承該類中的實現方法。Animation類主要用于補間動畫效果,提供了動畫啟動、停止、重復、持續時間等方法。Animation類中的方法適用于任何一種補間動畫對象。

setDuration方法:設置持續時間

【功能說明】該方法用于設置動畫的持續時間,以毫秒為單位。該方法是設置補間動畫時間長度的主要方法,使用非常普遍。

【基本語法】public void setDuration (long durationMillis)

其中,參數durationMillis為動畫的持續時間,單位為毫秒(ms)。

setDuration方法的示例可以參閱startNow方法中的示例代碼。

startNow方法:立刻啟動動畫

【功能說明】該方法用于啟動執行一個動畫。該方法是啟動執行動畫的主要方法,使用時需要先通過setAnimation方法為某一個View對象設置動畫。另外,用戶在程序中也可以使用View組件的startAnimation方法來啟動執行動畫。

【基本語法】public void startNow ()

【實例演示】下面通過代碼來演示如何設置一個簡單的動畫效果。

import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.widget.ImageView;import com.turing.base.R;public class Animation_startNow extends AppCompatActivity {private ImageView mIdIvFace;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_animation_start_now);mIdIvFace = (ImageView) findViewById(R.id.id_iv_face);// 設置移動效果/**** float fromXDelta 動畫開始的點離當前View X坐標上的差值* float toXDelta 動畫結束的點離當前View X坐標上的差值* float fromYDelta 動畫開始的點離當前View Y坐標上的差值* float toYDelta 動畫開始的點離當前View Y坐標上的差值*/Animation translateAnimation = new TranslateAnimation(0, 200, 0, 200);// 設置動畫持續時間translateAnimation.setDuration(3000);// 為ImageView設置動畫效果mIdIvFace.setAnimation(translateAnimation);// 啟動動畫translateAnimation.startNow();}}

在這段代碼中,首先初始化了一個移動的動畫效果translateAnimation。然后,通過setDuration方法設置動畫持續時間,并為image對象設置動畫效果,最后使用startNow方法啟動動畫效果。
顯示效果:圖片將沿45 方向向右下角移動。


start方法:啟動動畫

【功能說明】該方法用于啟動執行一個動畫。該方法是啟動執行動畫的另一個主要方法,使用時需要先通過setAnimation方法為某一個View對象設置動畫。start方法區別于startNow方法的地方在于,start方法可以用于在getTransformation方法被調用時啟動動畫。

【基本語法】public void start ()

start方法的執行效果類似于startNow方法,這里不再贅述。


cancel方法:取消動畫

【功能說明】該方法用于取消一個動畫的執行。該方法是取得一個正在執行中的動畫的主要方法。cancel方法和startNow方法結合可以實現對動畫執行過程的控制。需要注意的是,通過cancel方法取消的動畫,必須使用reset方法或者setAnimation方法重新設置,才可以再次執行動畫。

【基本語法】public void cancel ()

【實例演示】下面通過代碼來演示如何取消動畫效果執行。

import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.widget.Button; import android.widget.ImageView;import com.turing.base.R;public class Animation_cancel extends AppCompatActivity implements View.OnClickListener {private Button mIdBtnStartAnimation;private Button mIdBtnStopAnimation;private ImageView mIdIvFlag;Animation translateAnimation;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_animation_cancel);mIdBtnStartAnimation = (Button) findViewById(R.id.id_btn_startAnimation);mIdBtnStopAnimation = (Button) findViewById(R.id.id_btn_stopAnimation);mIdIvFlag = (ImageView) findViewById(R.id.id_iv_flag);mIdBtnStartAnimation.setOnClickListener(this);mIdBtnStopAnimation.setOnClickListener(this);// 設置 移動效果translateAnimation = new TranslateAnimation(0, 200, 0, 200);}/*** 2.3的版本 translateAnimation.startNow(); 有效,高版本無效 .* mIdIvFlag.startAnimation(translateAnimation); 高版本和低版本都有效。* @param v*/@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.id_btn_startAnimation:// 設置動畫時長translateAnimation.setDuration(3000);// 為imageView設置動畫mIdIvFlag.setAnimation(translateAnimation);// 開啟動畫// translateAnimation.startNow();mIdIvFlag.startAnimation(translateAnimation);break;case R.id.id_btn_stopAnimation:translateAnimation.cancel();break;default:break;}} }

在這段代碼中,首先初始化了一個移動的動畫效果translateAnimation。然后,在第一個按鈕監聽器中,通過setDuration方法設置動畫持續時間,并為image對象設置動畫效果,最后使用startNow方法啟動動畫效果。在第二個按鈕監聽器中,調用cancel方法取消動畫執行。

注意:

translateAnimation.startNow(); 2.3的版本 有效,高版本無效 .
mIdIvFlag.startAnimation(translateAnimation); 高版本和低版本都有效。


setRepeatCount方法:設置重復次數

【功能說明】該方法用于設置一個動畫效果重復執行的次數。Android系統默認每個動畫僅執行一次,通過該方法可以設置動畫執行多次。

【基本語法】public void setRepeatCount (int repeatCount)

其中,參數repeatCount為重復執行的次數。如果設置為n,則動畫將執行n+1次。

【實例演示】下面通過代碼來演示如何連續執行多次動畫效果。

translateAnimation.setRepeatCount(2); //設置重復次數

注意:這里設置的是動畫重復執行的次數,而不是動畫執行的次數。故動畫執行的次數為動畫重復執行的次數加1。


setFillEnabled方法:使能填充效果

【功能說明】該方法用于使能填充效果。當該方法設置為true時,將執行setFillBefore和setFillAfter方法,否則將忽略setFillBefore和setFillAfter方法。

【基本語法】public void setFillEnabled (boolean fillEnabled)

其中,參數fillEnabled為是否使能填充效果,true表示使能該效果,false表示禁用該效果。

setFillEnabled方法的示例可以參閱setFillBefore方法和setFillAfter方法中的示例代碼。

setFillBefore方法:設置起始填充

【功能說明】該方法用于設置一個動畫效果執行完畢后,View對象返回到起始的位置。該方法的效果是系統默認的效果。該方法的執行,需要首先通過setFillEnabled方法使能填充效果,否則設置無效。

【基本語法】public void setFillBefore (boolean fillBefore)

其中,參數fillBefore為是否執行起始填充效果,true表示使能該效果,false表示禁用該效果。

【實例演示】下面通過代碼來演示如何讓View對象在動畫執行完畢后回歸到起始位置。

//回歸起始位置 translateAnimation.setFillBefore(true); //使能填充效果 translateAnimation.setFillEnabled(true);

通過setFillBefore方法使對象回到起始點,并使用setFillEnabled使能填充效果

當點擊”START ANIMATION”按鈕時,圖片開始移動,當動畫結束之后,圖片將自動跳回到起始位置。(默認效果)


setFillAfter方法:設置終止填充

【功能說明】該方法用于設置一個動畫效果執行完畢后,View對象保留在終止的位置。該方法的執行,需要首先通過setFillEnabled方法使能填充效果,否則設置無效。

【基本語法】public void setFillAfter (boolean fillAfter)

其中,參數fillAfter為是否執行終止填充效果,true表示使能該效果,false表示禁用該效果。

【實例演示】下面通過代碼來演示如何讓View對象在動畫執行完畢后保留在終止位置。

translateAnimation.setFillAfter (true); //保留在終止位置translateAnimation.setFillEnabled(true); //使能填充效果 ;

通過setFillAfter方法使對象保留在終止點,并使用setFillEnabled使能填充效果。當點擊”START ANIMATION”按鈕時,圖片開始移動,當動畫結束之后,圖片將停留在終止位置。


setRepeatMode方法:設置重復模式

【功能說明】該方法用于設置一個動畫效果執行的重復模式。Android系統中提供了幾種重復模式,其中最主要的便是RESTART模式和REVERSE模式。

【基本語法】public void setRepeatMode (int repeatMode)

其中,參數repeatMode為動畫效果的重復模式,常用的取值如下。

RESTART:重新從頭開始執行。

REVERSE:反方向執行。

【實例演示】下面通過代碼來演示如何更改動畫路徑的方向。

translateAnimation.setRepeatCount(2); //設置重復次數// translateAnimation.setRepeatMode(Animation.RESTART); //重新從頭translateAnimation.setRepeatMode(Animation.REVERSE); //反方向執

通過setRepeatCount方法設置重復次數,通過setRepeatMode設置重復模式,最后使用startAnimation方法啟動動畫效果。

如果設置的重復模式為Animation.RESTART,則表示重新從頭開始執行。

如果設置的重復模式為Animation.REVERSE,則表示反方向執行,當一次動畫執行結束之后,圖片將向反方向運動。


setStartOffset方法:設置啟動時間

【功能說明】該方法用于設置一個動畫執行的啟動時間,單位為毫秒。系統默認當執行start方法后立刻執行動畫,當使用該方法設置后,將延遲一定的時間再啟動動畫。

【基本語法】public void setStartOffset (long startOffset)

其中,參數startOffset為動畫的啟動時間,單位為毫秒(ms)。

【實例演示】下面通過代碼來演示如何更改動畫的啟動時間。

translateAnimation.setStartOffset(3000); //設置啟動時間

通過setStartOffset方法設置動畫的啟動時間,當點擊”START ANIMATION”按鈕時,將等待3秒之后,圖片才開始移動。


TranslateAnimation類:位置變化動畫類

TranslateAnimation類是Android系統中的位置變化動畫類,用于控制View對象的位置變化,該類繼承于Animation類。TranslateAnimation類中的很多方法都與Animation類一致,該類中最常用的方法便是TranslateAnimation構造方法。

【基本語法】public TranslateAnimation (float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

參數說明

fromXDelta:位置變化的起始點X坐標。

toXDelta:位置變化的結束點X坐標。

fromYDelta:位置變化的起始點Y坐標。

toYDelta:位置變化的結束點Y坐標。


RotateAnimation類:旋轉變化動畫類

RotateAnimation類是Android系統中的旋轉變化動畫類,用于控制View對象的旋轉動作,該類繼承于Animation類。RotateAnimation類中的很多方法都與Animation類一致,該類中最常用的方法便是RotateAnimation構造方法。

【基本語法】public RotateAnimation (float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

參數說明

fromDegrees:旋轉的開始角度。

toDegrees:旋轉的結束角度。

pivotXType:X軸的伸縮模式,可以取值為ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

pivotXValue:X坐標的伸縮值。

pivotYType:Y軸的伸縮模式,可以取值為ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

pivotYValue:Y坐標的伸縮值。

【實例演示】下面通過代碼來演示如何設置一個簡單的旋轉變化動畫效果。

import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.animation.Animation; import android.view.animation.RotateAnimation; import android.widget.Button; import android.widget.ImageView;import com.apkfuns.logutils.LogUtils; import com.turing.base.R; import com.turing.base.utils.AlertUtil;public class RotateAnimationDemo extends AppCompatActivity implements View.OnClickListener {private Button mIdBtnStartAnimation;private Button mIdBtnStopAnimation;private ImageView mIdIvFlag;private Animation rotateAnimation;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_rotate_animation_demo);// 初始組件 注冊監聽assignViews();//設置旋轉變化動畫對象rotateAnimation = new RotateAnimation(0f, 360f,Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, 0.5f);}private void assignViews() {mIdBtnStartAnimation = (Button) findViewById(R.id.id_btn_startAnimation1);mIdBtnStopAnimation = (Button) findViewById(R.id.id_btn_stopAnimation1);mIdIvFlag = (ImageView) findViewById(R.id.id_iv_flag1);mIdBtnStartAnimation.setOnClickListener(this);mIdBtnStopAnimation.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.id_btn_startAnimation1:// 開始動畫AlertUtil.showToastShort(RotateAnimationDemo.this, "start");LogUtils.d("start");rotateAnimation.setDuration(3000); //持續時間mIdIvFlag.setAnimation(rotateAnimation); //設置動畫mIdIvFlag.startAnimation(rotateAnimation); //啟動動畫break;case R.id.id_btn_stopAnimation1:// 取消動畫rotateAnimation.cancel();break;default:break;}} }

首先通過RotateAnimation構造方法創建了一個旋轉變化的動畫對象。然后,在第一個按鈕監聽器中設置了動畫的持續時間,之后啟動該動畫。在第二個按鈕監聽器中取消該動畫


ScaleAnimation類:尺寸變化動畫類

ScaleAnimation類是Android系統中的尺寸變化動畫類,用于控制View對象的尺寸變化,該類繼承于Animation類。ScaleAnimation類中的很多方法都與Animation類一致,該類中最常用的方法便是ScaleAnimation構造方法。

【基本語法】public ScaleAnimation (float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

參數說明

fromX:起始X坐標上的伸縮尺寸。

toX:結束X坐標上的伸縮尺寸。

fromY:起始Y坐標上的伸縮尺寸。

toY:結束Y坐標上的伸縮尺寸。

pivotXType:X軸的伸縮模式,可以取值為ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

pivotXValue:X坐標的伸縮值。

pivotYType:Y軸的伸縮模式,可以取值為ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

pivotYValue:Y坐標的伸縮值。

【實例演示】下面通過代碼來演示如何設置一個簡單的尺寸變化動畫效果。

public class ScaleAnimationDemo extends AppCompatActivity implements View.OnClickListener {private Button mIdBtnStartAnimation;private Button mIdBtnStopAnimation;private ImageView mIdIvFlag;ScaleAnimation scaleAnimation;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_scale_animation_demo);assignViews();//設置尺寸變化動畫對象scaleAnimation = new ScaleAnimation(0f, 1f, 0f, 1f,Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);}private void assignViews() {mIdBtnStartAnimation = (Button) findViewById(R.id.id_btn_startAnimation1);mIdBtnStopAnimation = (Button) findViewById(R.id.id_btn_stopAnimation1);mIdIvFlag = (ImageView) findViewById(R.id.id_iv_flag1);mIdBtnStartAnimation.setOnClickListener(this);mIdBtnStopAnimation.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.id_btn_startAnimation1:// 開始動畫scaleAnimation.setDuration(3000); //持續時間mIdIvFlag.setAnimation(scaleAnimation); //設置動畫mIdIvFlag.startAnimation(scaleAnimation); //啟動動畫break;case R.id.id_btn_stopAnimation1:// 取消動畫scaleAnimation.cancel();break;default:break;}} }

首先通過ScaleAnimation構造方法創建了一個尺寸變化的動畫對象。然后,在第一個按鈕監聽器中設置了動畫的持續時間,之后啟動該動畫。在第二個按鈕監聽器中取消該動畫。讀者運行這段代碼,將看到圖片從小到大逐漸變化,最后,圖片增大到原始尺寸的時候停止。


AlphaAnimation類:透明度變化動畫類

AlphaAnimation類是Android系統中的透明度變化動畫類,用于控制View對象的透明度變化,該類繼承于Animation類。AlphaAnimation類中的很多方法都與Animation類一致,該類中最常用的方法便是AlphaAnimation構造方法。

【基本語法】public AlphaAnimation (float fromAlpha, float toAlpha)

參數說明

fromAlpha:開始時刻的透明度,取值范圍0~1。

toAlpha:結束時刻的透明度,取值范圍0~1。

【實例演示】下面通過代碼來演示如何設置一個簡單的漸變透明度動畫效果。

這里寫代碼片

首先通過AlphaAnimation構造方法創建了一個透明度變化的動畫對象。然后,在第一個按鈕監聽器中設置了動畫的持續時間,之后啟動該動畫。在第二個按鈕監聽器中取消該動畫。運行這段代碼,將看到圖片的透明度由淺入深逐漸變化。最后,圖片變為完全不透明的時候停止。


AnimationSet類:動畫集合類

AnimationSet類是Android系統中的動畫集合類,用于控制View對象進行多個動作的組合,該類繼承于Animation類。AnimationSet類中的很多方法都與Animation類一致,該類中最常用的方法便是addAnimation方法,該方法用于為動畫集合對象添加動畫對象。

【基本語法】public void addAnimation (Animation a)

其中,參數a為Animation動畫對象,可以是前述任何一種補間動作。

【實例演示】下面通過代碼來演示如何設置一個組合動畫效果。

public class AnimationSetDemo extends AppCompatActivity implements View.OnClickListener {private Button mIdBtnStartAnimation;private Button mIdBtnStopAnimation;private ImageView mIdIvFlag;Animation translateAnimation, scaleAnimation, alphaAnimation;AnimationSet animationSet;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_animation_set_demo);assignViews();//設置位置變化動畫translateAnimation = new TranslateAnimation(0, 300, 0, 300);//設置尺寸變化動畫scaleAnimation = newScaleAnimation(0f, 1f, 0f, 1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);//設置透明度變化動畫alphaAnimation = new AlphaAnimation(0.1f, 1.0f);}private void assignViews() {mIdBtnStartAnimation = (Button) findViewById(R.id.id_btn_startAnimation1);mIdBtnStopAnimation = (Button) findViewById(R.id.id_btn_stopAnimation1);mIdIvFlag = (ImageView) findViewById(R.id.id_iv_flag1);mIdBtnStartAnimation.setOnClickListener(this);mIdBtnStopAnimation.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.id_btn_startAnimation1:// 開始動畫translateAnimation.setDuration(10000); //設置位置變化動畫的持續時間scaleAnimation.setDuration(10000); //設置尺寸變化動畫的持續時間alphaAnimation.setDuration(10000); //設置透明度漸變動畫的持續時間animationSet = new AnimationSet(true); //創建動畫集對象animationSet.addAnimation(translateAnimation); //添加位置變化動畫animationSet.addAnimation(scaleAnimation); //添加尺寸變化動畫animationSet.addAnimation(alphaAnimation); //添加透明度漸變動畫animationSet.setFillAfter(true); //停留在最后的位置animationSet.setFillEnabled(true);mIdIvFlag.setAnimation(animationSet); //設置動畫// animationSet.startNow(); 高版本中無效,2.3可以,不建議使用mIdIvFlag.startAnimation(animationSet); //啟動動畫break;case R.id.id_btn_stopAnimation1:// 取消動畫animationSet.cancel();break;default:break;}} }

首先構造了位置變化、尺寸變化和透明度變化動畫的對象。然后,在第一個按鈕監聽器中分別設置了動畫的持續時間,并通過addAnimation方法添加到動畫集中,之后啟動該動畫。
在第二個按鈕監聽器中取消該動畫。

運行這段代碼,將會看到顯示效果:圖片從小到大,由淺入深,從左上角向右下角移動。當動畫結束的時候,圖片對象將停留在結束點的位置。


AnimationUtils類:動畫工具類

AnimationUtils類是Android系統中的動畫工具類,提供了控制View對象的一些工具。該類中最常用的方法便是loadAnimation方法,該方法用于加載XML格式的動畫配置文件。在Android系統中,除了在代碼中設置動畫效果外,還可以在XML配置文件中設置動畫的組合動作,這種方式適用性更好。

【基本語法】public static Animation loadAnimation (Context context, int id)

參數說明

context:上下文對象。

id:動畫配置文件的ID。

【實例演示】下面通過代碼來演示如何加載一個XML組合動畫效果。

public class AnimationUtilsDemo extends AppCompatActivity implements View.OnClickListener {private Button mIdBtnStartAnimation;private Button mIdBtnStopAnimation;private ImageView mIdIvFlag;//動畫對象Animation loadAnimation;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_animation_utils_demo);assignViews();}private void assignViews() {mIdBtnStartAnimation = (Button) findViewById(R.id.id_btn_startAnimation1);mIdBtnStopAnimation = (Button) findViewById(R.id.id_btn_stopAnimation1);mIdIvFlag = (ImageView) findViewById(R.id.id_iv_flag1);mIdBtnStartAnimation.setOnClickListener(this);mIdBtnStopAnimation.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.id_btn_startAnimation1:// 開始動畫loadAnimation = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.anim);mIdIvFlag.setAnimation(loadAnimation); //為控件設置動畫loadAnimation.setFillAfter(true); //停留在結束位置loadAnimation.setFillEnabled(true);mIdIvFlag.startAnimation(loadAnimation);//開始動畫break;case R.id.id_btn_stopAnimation1:// 取消動畫loadAnimation.cancel();break;default:break;}}}

首先聲明了動畫對象。然后,在第一個按鈕監聽器中通過loadAnimation方法加載動畫配置文件,并設置了動畫的一些特征,最后開始執行動畫。在第二個按鈕監聽器中調用cancel方法取消動畫執行。這里用到的動畫配置文件如下所示,里面定義了位置移動和旋轉的組合動畫效果。

anim.xml

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:duration="3000"android:toXDelta="0"android:toYDelta="300" /><rotate android:duration="3000"android:fromDegrees="270"android:pivotX="50%"android:pivotY="50%"android:toDegrees="360" /> </set>


幀動畫(Frame Aniamtion/Drawable Animation)

AnimationDrawable類:幀動畫類

AnimationDrawable類是Android系統中的幀動畫類。幀動畫方式類似于放電影的原理,是通過順序播放多張圖片來實現動畫效果的,圖片之間有一定的動作連貫性,這樣人眼看來就像對象真正在運動一樣。AnimationDrawable類位于android.graphics.drawable軟件包中,本節將介紹幀動畫類中的主要編程方法。

start方法:開始動畫

【功能說明】該方法用于開始動畫執行,其是幀動畫效果執行的主要方法。

【基本語法】public void start ()

【實例演示】下面通過代碼來演示如何實現一個簡單的幀動畫。

public class AnimationDrawable_start extends AppCompatActivity implements View.OnClickListener {private Button mIdBtnStartAnimation;private ImageView mIdIvHorse;AnimationDrawable animationDrawable;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_animation_drawable_start);mIdBtnStartAnimation = (Button) findViewById(R.id.id_btn_startAnimation);mIdIvHorse = (ImageView) findViewById(R.id.id_iv_horse);mIdBtnStartAnimation.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.id_btn_startAnimation://聲明幀動畫對象 通過imageview.getBackgroundanimationDrawable = (AnimationDrawable) mIdIvHorse.getBackground();animationDrawable.start(); //開始動畫AlertUtil.showToastShort(AnimationDrawable_start.this,"start");break;default:break;}} } <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><Button android:id="@+id/id_btn_startAnimation"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="開始幀動畫" /><ImageView android:id="@+id/id_iv_horse"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/anim_zhuzhen"android:layout_below="@id/id_btn_startAnimation" /></RelativeLayout>

首先聲明了幀動畫對象,然后在按鈕監聽器中直接調用start方法來開始動畫執行。為了能夠實現動畫效果,還需要指定幀動畫所需要的圖片和動畫順序。然后,在res/drawable目錄下新建一個幀動畫配置文件,并將其設置為圖片控件的背景。幀動畫配置文件的內容如下:

<?xml version="1.0" encoding="utf-8"?><!--根標簽為animation-list,其中oneshot代表著是否只展示一遍,設置為false會不停的循環播放動畫根標簽下,通過item標簽對動畫中的每一個圖片進行聲明android:duration 表示展示所用的該圖片的時間長度--> <animation-list xmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="true"><item android:drawable="@drawable/horse1"android:duration="100" /><item android:drawable="@drawable/horse2"android:duration="100" /><item android:drawable="@drawable/horse3"android:duration="100" /><item android:drawable="@drawable/horse4"android:duration="100" /><item android:drawable="@drawable/horse5"android:duration="100" /><item android:drawable="@drawable/horse6"android:duration="100" /><item android:drawable="@drawable/horse7"android:duration="100" /><item android:drawable="@drawable/horse8"android:duration="100" /> </animation-list>


stop方法:停止動畫

【功能說明】該方法用于停止動畫執行,其是幀動畫效果停止的主要方法。start方法常和stop方法一起來使用。

【基本語法】public void stop ()

【實例演示】下面通過代碼來演示如何實現一個簡單的幀動畫。

@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.id_btn_startAnimation:animationDrawable.start(); //開始動畫break;case R.id.id_btn_stop:animationDrawable.stop(); //停止動畫break;default:break;}}

注意:
如果在Activity中我不想用按鈕觸發這個動畫,要程序運行即播放動畫,怎么做呢?
最好是在onWindowFocusChanged這個方法中啟動動畫。因為在onCreate中啟動動畫, AnimationDrawable有可能還沒有完全attach 到Window上


addFrame方法:添加動畫幀

【功能說明】該方法用于為幀動畫對象添加動畫幀。該方法主要用于動態修改幀動畫內容的場合,可以根據需要增加一些動畫幀。

【基本語法】public void addFrame (Drawable frame, int duration)

參數說明

frame:動畫幀的Drawable對象。

duration:動畫幀的持續時間,單位為毫秒。

【實例演示】下面通過代碼來演示如何實現一個簡單的幀動畫。

public class AnimationDrawable_addFrame extends AppCompatActivity implements View.OnClickListener {private Button mIdBtnStartAnimation, id_btn_stop;private ImageView mIdIvHorse;AnimationDrawable animationDrawable;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_animation_drawable_add_frame);mIdBtnStartAnimation = (Button) findViewById(R.id.id_btn_startAnimation);id_btn_stop = (Button) findViewById(R.id.id_btn_stop);mIdIvHorse = (ImageView) findViewById(R.id.id_iv_horse);//聲明幀動畫對象animationDrawable = (AnimationDrawable) mIdIvHorse.getBackground();// 注冊監聽監聽事件mIdBtnStartAnimation.setOnClickListener(this);id_btn_stop.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.id_btn_startAnimation:animationDrawable.addFrame(getResources().getDrawable(R.drawable.zzlx1), 100);//添加幀animationDrawable.addFrame(getResources().getDrawable(R.drawable.zzlx2), 100);//添加幀animationDrawable.addFrame(getResources().getDrawable(R.drawable.zzlx3), 100);//添加幀animationDrawable.addFrame(getResources().getDrawable(R.drawable.zzlx4), 100);//添加幀animationDrawable.addFrame(getResources().getDrawable(R.drawable.zzlx5), 100);//添加幀animationDrawable.addFrame(getResources().getDrawable(R.drawable.zzlx6), 100);//添加幀animationDrawable.addFrame(getResources().getDrawable(R.drawable.zzlx7), 100);//添加幀animationDrawable.addFrame(getResources().getDrawable(R.drawable.zzlx8), 100);//添加幀animationDrawable.start(); //開始動畫break;case R.id.id_btn_stop:animationDrawable.stop();break;default:break;}}}

首先聲明了幀動畫對象。然后,在第一個按鈕監聽器中使用addFrame方法添加了動畫幀,之后直接調用start方法來開始動畫執行,在第二個按鈕監聽器中直接調用stop方法來停止動畫執行


setOneShot方法:設置播放方式

【功能說明】該方法用于設置幀動畫的播放方式,可以是單次播放,也可以是循環播放。在系統默認情況下采用的是單次播放的方式。該方法主要用于循環播放的場合。

【基本語法】public void setOneShot (boolean oneShot)

其中,參數oneShot表示了動畫是否執行一次,true表示僅執行一次,false表示無限次循環執行動畫效果。

ad.setOneShot(false); //循環播放 ad.start(); //開始動畫


setAlpha方法:設置透明度

【功能說明】該方法用于設置幀動畫播放過程中圖片的透明度。該方法經常用于一些特效顯示效果的場合。

【基本語法】public void setAlpha (int alpha)

其中,參數alpha表示圖片的透明度,取值范圍為0~255。

ad.setAlpha(100); //設置透明度 ad.start(); //開始動畫 }


getNumberOfFrames方法:獲取幀數

【功能說明】該方法用于獲取動畫的幀個數,也就是按照順序播放了幾張圖片。該方法常常用于獲取幀動畫對象特性的場合。

【基本語法】public int getNumberOfFrames ()

【實例演示】下面通過代碼來演示如何獲取幀動畫播放幀的個數。

int num; ad.start(); //開始動畫 num=ad.getNumberOfFrames(); //獲取幀數 Toast.makeText(getApplicationContext(), "當前動畫需要播放"+num+"幀", Toast.LENGTH_LONG).show(); //顯示 }


小結

動畫技術能夠給應用程序帶來豐富的特效,增強用戶體驗。Android3.0之前的SDK提供了兩種動畫實現方式,補間動畫(Tween Animation)和幀動畫(Frame Animation)。補間動畫可以對View對象進行簡單的移動、旋轉、縮放和漸變等效果,幀動畫則提供了傳統的逐幀播放圖片的動畫方式。


還有些優質的文章推薦:
http://www.jianshu.com/p/6460d5788406
http://www.jianshu.com/p/7ba70e061bb4


屬性動畫(Property Animation)

概述

在android3.0中又引入了一個新的動畫系統:property animation。

可通過NineOldAndroids項目在3.0之前的系統中使用Property Animation。

和視圖動畫的區別

視圖動畫只能作用于View,而且視圖動畫改變的只是View的繪制效果,View真正的屬性并沒有改變。

比如,一個按鈕做平移的動畫,雖然按鈕的確做了平移,但按鈕可點擊的區域并沒隨著平移而改變,還是在原來的位置。

示例:
在左上角有一個ImageView圖標,我們為其設置了點擊監聽事件,然后當我們使用終止填充效果時,動畫結束后圖標停留在最后的位置,此時,當我們點擊圖標時,是觸發不到點擊事件的,然而我們點擊圖標原始位置時,卻觸發了點擊事件,由此可見按鈕可點擊的區域并沒隨著平移而改變,還是在原來的位置。

而屬性動畫則可以改變真正的屬性,從而實現按鈕平移時點擊區域也跟著平移。通俗點說,屬性動畫其實就是在一定時間內,按照一定規律來改變對象的屬性,從而使對象展現出動畫效果。

存放目錄res/animator

屬性動畫和視圖動畫一樣,可以通過xml文件定義。

不同的是:

  • 視圖動畫的xml文件放于res/anim/目錄下,
  • 屬性動畫的xml文件則放于res/animator/目錄下
  • 一個是anim,一個是animator ,務必不要搞混了。
  • 同樣的,在Java代碼里引用屬性動畫的xml文件時,則用R.animator.filename,不同于視圖動畫,引用時為R.anim.filename。

主要元素和類

屬性動畫主要有三個元素:<animator>、<objectAnimator>、<set>。
相對應的有三個類:ValueAnimatorObjectAnimatorAnimatorSet

ValueAnimator是基本的動畫類,處理值動畫,通過監聽某一值的變化,進行相應的操作。

ObjectAnimator是ValueAnimator的子類,處理對象動畫。

AnimatorSet則為動畫集,可以組合另外兩種動畫或動畫集。

相應的三個標簽元素的關系也一樣。

<animator>標簽

概述

<animator>標簽與對應的ValueAnimator類提供了屬性動畫的核心功能,包括計算動畫值、動畫時間細節、是否重復等。

執行屬性動畫分兩個步驟:

  • 計算動畫值
  • 將動畫值應用到對象和屬性上
  • ValuAnimiator只完成第一步,即只計算值,要實現第二步則需要在值變化的監聽器里自行更新對象屬性。

    通過<animator>標簽可以很方便的對ValuAnimiator進行設置,可設置的屬性如下:

    • android:duration 動畫從開始到結束持續的時長,單位為毫秒
    • android:startOffset 設置動畫執行之前的等待時長,單位為毫秒
    • android:repeatCount 設置動畫重復執行的次數,默認為0,即不重復;可設為-1或infinite,表示無限重復
    • android:repeatMode 設置動畫重復執行的模式,可設為以下兩個值其中之一:
      1. restart 動畫重復執行時從起點開始,默認為該值
      2. reverse 動畫會反方向執行
    • android:valueFrom 動畫開始的值,可以為int值、float值或color值
    • android:valueTo 動畫結束的值,可以為int值、float值或color值
    • android:valueType 動畫值類型,若為color值,則無需設置該屬性

    • intType 指定動畫值,即以上兩個value屬性的值為整型
    • floatType 指定動畫值,即以上兩個value屬性的值為浮點型,默認值
    • android:interpolator 設置動畫速率的變化,比如加速、減速、勻速等,需要指定Interpolator資源 參考http://keeganlee.me/post/android/20151003。

    示例

    將一個按鈕的寬度進行縮放,從100%縮放到20%。

    res/animator/value_animator.xml

    <?xml version="1.0" encoding="utf-8"?> <animator xmlns:android="http://schemas.android.com/apk/res/android"android:duration="3000"android:repeatCount="infinite"android:repeatMode="reverse"android:valueFrom="100"android:valueTo="20"android:valueType="intType"/>

    可看到,值的變化從100到20,無限重復,反方向執行、動畫時長3000毫秒。

    ValueAnimatorByXmlAct.java

    import android.animation.AnimatorInflater; import android.animation.ValueAnimator; import android.annotation.TargetApi; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.DisplayMetrics; import android.view.View;import com.turing.base.R;public class ValueAnimatorByXmlAct extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_value_animator_by_xml);}@TargetApi(Build.VERSION_CODES.HONEYCOMB)public void onScaleWidth(final View view) {// 獲取屏幕寬帶DisplayMetrics metrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metrics);final int width = metrics.widthPixels;/*** 屬性動畫則是通過AnimatorInflater類的loadAnimation()方法獲取相應的Animator類實例。* 另外,ValueAnimator通過添加AnimatorUpdateListener監聽器監聽值的變化,從而再手動更新目標對象的屬性。* 最后,通過調用valueAnimator.start()方法啟動動畫。*/ValueAnimator valueAnimator = (ValueAnimator) AnimatorInflater.loadAnimator(this, R.animator.value_animator);valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {@Overridepublic void onAnimationUpdate(ValueAnimator animator) {// 當前動畫值,即為當前寬度比例值int currentValue = (Integer) animator.getAnimatedValue();// 根據比例更改目標view的寬度view.getLayoutParams().width = width * currentValue / 100;view.requestLayout();}});valueAnimator.start();} }

    <objectAnimator>標簽

    概述

    <objectAnimator>標簽對應的類為ObjectAnimator,為ValueAnimator的子類。

    <objectAnimator>標簽與<animator>標簽不同的是,<objectAnimator>可以直接指定動畫的目標對象的屬性。

    標簽可設置的屬性除了和<animator>一樣的那些,另外多了一個:

    • android:propertyName 目標對象的屬性名,要求目標對象必須提供該屬性的setter方法,如果動畫的時候沒有初始值,還需要提供getter方法

    示例

    還是用上面的例子,將一個按鈕的寬度進行縮放,從100%縮放到20%,但這次改用<objectAnimator>實現。

    res/animtor/object_animator.xml

    <?xml version="1.0" encoding="utf-8"?> <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"android:duration="3000"android:propertyName="width"android:repeatCount="infinite"android:repeatMode="reverse"android:valueFrom="100"android:valueTo="20"android:valueType="intType" />

    與<animator>的例子相比,就只是多了一個android:propertyName的屬性,設置值為width。也就是說,動畫改變的屬性為width,值將從100逐漸減到20。另外,值是從setWidth()傳遞過去的,再從getWidth()獲取。而且,這里設置的值代表的是比例值,因此,還需要進行計算轉化為實際的寬度值。最后,對象實際的寬度值為view.getLayoutParams().width。因此,我們用一個包裝類來包裝原始的view對象,對其提供setWidth()和getWidth()方法,代碼見Activity中的內部類。

    import android.animation.AnimatorInflater; import android.animation.ObjectAnimator; import android.annotation.TargetApi; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.DisplayMetrics; import android.view.View;import com.turing.base.R;public class ObjectAnimatorByXmlAct extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_object_animator_by_xml);}/*** Button點擊響應事件** @param view*/@TargetApi(Build.VERSION_CODES.HONEYCOMB)public void onScaleWidth(View view) {// 獲取屏幕的寬度DisplayMetrics displayMetrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);final int width = displayMetrics.widthPixels;// 將目標view進行包裝ViewWrapper wrapper = new ViewWrapper(view, width);// 將xml轉化為ObjectAnimator對象ObjectAnimator objectAnimator = (ObjectAnimator) AnimatorInflater.loadAnimator(this, R.animator.object_animator);// 設置動畫的目標對象為包裝后的viewobjectAnimator.setTarget(wrapper);// 啟動動畫objectAnimator.start();}/*** 與<animator>的例子相比,就只是多了一個android:propertyName的屬性,設置值為width。* 也就是說,動畫改變的屬性為width,值將從100逐漸減到20。* 另外,值是從setWidth()傳遞過去的,再從getWidth()獲取。* 而且,這里設置的值代表的是比例值,因此,還需要進行計算轉化為實際的寬度值。* 最后,對象實際的寬度值為view.getLayoutParams().width。* 因此,我將用一個包裝類來包裝原始的view對象,對其提供setWidth()和getWidth()方法*/private static class ViewWrapper {private View target;// 目標對象private int maxWidth; //最長寬度值public ViewWrapper(View target, int maxWidth) {this.target = target;this.maxWidth = maxWidth;}public int getWidth() {return target.getLayoutParams().width;}public void setWidth(int widthValue) {//widthValue的值從100到20變化target.getLayoutParams().width = maxWidth * widthValue / 100;target.requestLayout();}} }

    setWidth()的代碼里,根據比例值轉化為了實際的寬度值。
    動畫處理的代碼在onScaleWidth方法中。

    activity_object_animator_by_xml.xml

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.turing.base.android_hero.chapter6_Draw.annimation_propertyAnimation.ObjectAnimatorByXmlAct"><Button android:layout_width="match_parent"android:layout_height="wrap_content"android:text="點我"android:background="@drawable/bg_btn_normal"android:onClick="onScaleWidth"/></RelativeLayout>

    bg_btn_normal.xml

    <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"><solid android:color="#2F90BD" /><padding android:bottom="12dp"android:left="12dp"android:right="12dp"android:top="12dp" /><corners android:radius="10dp" /> </shape>

    ObjectAnimator提供了屬性的設置,但相應的需要有該屬性的setter和getter方法。而ValueAnimator則只是定義了值的變化,并不指定目標屬性,所以也不需要提供setter和getter方法,但只能在AnimatorUpdateListener監聽器里手動更新屬性。不過,也因為沒有指定屬性,所以其實更具靈活性了,你可以在監聽器里根據值的變化做任何事情,比如更新多個屬性,比如在縮放寬度的同時做垂直移動。

    為了對View更方便的設置屬性動畫,Android系統也提供了View的一些屬性和相應的setter和getter方法:

    • alpha:透明度,默認為1,表示不透明,0表示完全透明
    • pivotX 和 pivotY:旋轉的軸點和縮放的基準點,默認是View的中心點
    • scaleX 和 scaleY:基于pivotX和pivotY的縮放,1表示無縮放,小于1表示收縮,大于1則放大
    • rotation、rotationX 和 rotationY:基于軸點(pivotX和pivotY)的旋轉,rotation為平面的旋轉,rotationX和rotationY為立體的旋轉
    • translationX 和 translationY:View的屏幕位置坐標變化量,以layout容器的左上角為坐標原點
    • x 和 y:View在父容器內的最終位置,是左上角坐標和偏移量(translationX,translationY)的和。

    <set>標簽

    <set>標簽對應于AnimatorSet類,可以將多個動畫組合成一個動畫集,如上面提到的在縮放寬度的同時做垂直移動,可以將一個縮放寬度的動畫和一個垂直移動的動畫組合在一起。
    <set>標簽有一個屬性可以設置動畫的時序關系:

    • android:ordering 設置動畫的時序關系,取值可為以下兩個值之一:

    1.together 動畫同時執行,默認值 sequ
    2.entially 動畫按順序執行

    那如果想有些動畫同時執行,有些按順序執行,該怎么辦呢?因為<set>標簽是可以嵌套其他<set>標簽的,也就是說可以將同時執行的組合在一個<set>標簽,再嵌在按順序執行的<set>標簽內。

    <!-- res/animator/animator_set.xml --> <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"android:ordering="together"><objectAnimator android:duration="3000"android:propertyName="width"android:valueFrom="100"android:valueTo="20"android:valueType="intType" /><objectAnimator android:duration="3000"android:propertyName="marginTop"android:valueFrom="0"android:valueTo="100"android:valueType="intType" /> </set>

    以上代碼可實現兩個同時執行的動畫,一個將width從100縮放到20,一個將marginTop從0增加到100。多了一個marginTop屬性,那么,在ViewWrapper添加setMarginTop()方法,添加后的ViewWrapper類代碼如下:

    private static class ViewWrapper {private View target;private int maxWidth;public ViewWrapper(View target, int maxWidth) {this.target = target;this.maxWidth = maxWidth;}public int getWidth() {return target.getLayoutParams().width;}public void setWidth(int widthValue) {target.getLayoutParams().width = maxWidth * widthValue / 100;target.requestLayout();}public void setMarginTop(int margin) {LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) target.getLayoutParams();layoutParams.setMargins(0, margin, 0, 0);target.setLayoutParams(layoutParams);} }

    最后,動畫處理的代碼:

    public void onScaleWidth(View view) {// 獲取屏幕寬度int maxWidth = getWindowManager().getDefaultDisplay().getWidth();// 將目標view進行包裝ViewWrapper wrapper = new ViewWrapper(view, maxWidth);// 將xml轉化為ObjectAnimator對象AnimatorSet animatorSet = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.animator_set);// 設置動畫的目標對象為包裝后的viewanimatorSet.setTarget(wrapper);// 啟動動畫animatorSet.start(); }

    這樣就搞定了,實現了寬度縮放和垂直移動的效果。

    總結

    以上是生活随笔為你收集整理的Android动画效果-更新中的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    亚洲精品国产精品国 | 久久视频二区 | 99精品在这里 | 夜夜嗨av色一区二区不卡 | 国产高清在线观看av | 午夜私人影院 | 国产黄色免费 | 国产一级片视频 | 国内视频一区二区 | 精品国产一区二区三区蜜臀 | 三级av网站| 亚洲高清av在线 | 国产精品久久久久久久久婷婷 | 日韩和的一区二在线 | 午夜精品一区二区三区四区 | 国产日韩欧美在线影视 | 五月婷婷一级片 | 国产亚洲精品成人av久久影院 | 亚洲成人频道 | av国产网站 | 欧美激情综合色综合啪啪五月 | 国产美女精彩久久 | 久久久久区 | 丁香婷婷在线观看 | 国产一区私人高清影院 | 欧美在线你懂的 | 欧美a级在线播放 | 337p欧美 | 人人添人人澡人人澡人人人爽 | 毛片网站免费在线观看 | 亚洲 欧洲 国产 日本 综合 | 婷婷 中文字幕 | 国产精品丝袜久久久久久久不卡 | 成人国产精品入口 | 久久久噜噜噜久久久 | 亚洲精品在线观看的 | 亚洲精品97| 97超碰国产精品 | 久久综合欧美精品亚洲一区 | 在线播放亚洲 | 伊人夜夜| 色婷婷播放 | 成人午夜电影久久影院 | 欧美日韩国产一区二区在线观看 | 中文字幕视频网 | 激情综合啪啪 | av不卡免费看 | 日韩av免费在线电影 | 国产在线一区观看 | 国产精品久久久久久一二三四五 | 在线观看亚洲精品 | 99国产精品久久久久久久久久 | 国产精品一二三 | 欧美久久久 | 免费看av片网站 | 91精品久久久久久久久久久久久 | 亚洲伊人天堂 | 99久热在线精品视频成人一区 | 黄色软件视频网站 | 人人爽久久涩噜噜噜网站 | av中文字幕亚洲 | 日韩精品在线免费播放 | 欧美日韩国产精品一区二区三区 | 国产香蕉久久精品综合网 | 亚洲三级视频 | av在线看片 | 日本久久久久久 | 欧美韩国日本在线 | 中文字幕亚洲国产 | 青青草华人在线视频 | 亚洲自拍自偷 | 日本黄色免费观看 | 一级理论片在线观看 | 日韩国产精品久久久久久亚洲 | 色综合色综合久久综合频道88 | 久久久99精品免费观看 | 国偷自产中文字幕亚洲手机在线 | 五月天六月婷婷 | 国产精品影音先锋 | 国产一级二级av | 国产视频一区二区在线观看 | 欧美日韩免费在线视频 | 亚洲美女视频在线 | 精品国产一区二区三区四 | 99这里只有| 激情 婷婷| 美女视频一区 | 97成人精品区在线播放 | www.玖玖玖 | av爱干| 爱色av.com| 国产伦理久久精品久久久久_ | 中文视频在线播放 | 久久夜夜爽 | 444av| 久久久久久久国产精品 | 99久久精品国产一区二区三区 | 波多野结衣视频一区二区三区 | 午夜av在线电影 | 国产精品中文久久久久久久 | 欧美另类性 | 亚州黄色一级 | 中文免费观看 | 日韩免费在线视频 | 国产日产av | 久久久久亚洲最大xxxx | 一区二区三区四区免费视频 | 国产 日韩 欧美 自拍 | 国内丰满少妇猛烈精品播放 | 在线观看久久久久久 | 久久精品国产亚洲a | 麻豆一精品传二传媒短视频 | 午夜视频在线观看欧美 | 亚洲专区视频在线观看 | 天海冀一区二区三区 | 激情欧美一区二区免费视频 | 久久精品激情 | 国产中文字幕亚洲 | 欧美一级黄大片 | 欧美久草在线 | 亚洲精品视频免费在线 | 久久婷婷一区二区三区 | 亚洲国产婷婷 | 亚洲乱码在线观看 | 国产黄色片免费观看 | 久久欧美精品 | 女人18毛片90分钟 | 五月婷在线播放 | 精品视频免费久久久看 | 日本久久片 | 欧洲性视频 | 亚洲精品乱码久久久久 | 久久久国产高清 | 日韩欧美有码在线 | 亚洲干 | 午夜av色 | 一级免费看视频 | 国产做aⅴ在线视频播放 | 久久久久久蜜av免费网站 | 久久人人爽人人爽人人片 | 毛片1000部免费看 | 夜夜爽www | 欧美视频www| av一本久道久久波多野结衣 | 99久国产 | 日操干| 伊人丁香 | 香蕉视频导航 | 国产精品久久二区 | 精品99免费视频 | 国产成人精品综合 | 99精品视频精品精品视频 | 亚洲清纯国产 | 九九九热精品免费视频观看网站 | 99精品国产一区二区 | 正在播放一区 | 99久久精品一区二区成人 | 日韩在线中文字幕视频 | 91丨九色丨蝌蚪丨老版 | 精品99免费 | 99国产视频在线 | 日韩欧美一区二区三区免费观看 | 久久嗨 | 韩日av在线 | 国产综合婷婷 | 在线小视频 | 日韩高清无线码2023 | 日韩欧美在线观看一区二区三区 | 91精品视频免费看 | 国产亚洲精品久久久久久网站 | 久久久久一区二区三区四区 | 免费日韩高清 | 嫩草伊人久久精品少妇av | 久久精品96| 97超碰免费在线观看 | 成人久久免费 | 久久人人爽爽人人爽人人片av | 狠狠插狠狠干 | 国产第一二区 | 在线免费观看的av网站 | 在线不卡中文字幕播放 | 久草在线高清视频 | 成人av电影在线 | 日韩欧美成| 在线亚洲天堂网 | 日韩精品久久久久久久电影竹菊 | 99热这里只有精品久久 | 日韩中文字幕第一页 | 久久少妇免费视频 | 色小说在线 | 中午字幕在线观看 | 国内丰满少妇猛烈精品播放 | 成人免费视频观看 | 久久99深爱久久99精品 | 在线观看网站黄 | 国产精品久久久区三区天天噜 | 亚洲精品乱码白浆高清久久久久久 | 免费观看9x视频网站在线观看 | 91精品毛片 | 日韩高清免费电影 | 中文字幕av一区二区三区四区 | 视频二区在线 | 最新国产在线 | 99久久精品免费一区 | 视频 国产区 | 国产精品久久一 | 国产精品v a免费视频 | 欧美极品少妇xxxx | 亚洲欧洲中文日韩久久av乱码 | 中文字幕美女免费在线 | 在线视频欧美精品 | 国产精品女 | 国产传媒中文字幕 | av在线播放网址 | 波多野结衣日韩 | 亚洲成人资源在线观看 | 在线观看免费观看在线91 | 成片免费| 久久伊人免费视频 | 青青射| 在线播放 日韩专区 | 日韩色视频在线观看 | 黄色av一级片 | 亚洲精品视频在线观看免费视频 | 成人一级在线 | 在线免费观看不卡av | 国内久久视频 | 婷婷国产v亚洲v欧美久久 | 欧美日本啪啪无遮挡网站 | 视频国产一区二区三区 | 欧美色图88| 中文字幕国产一区二区 | 黄色小视频在线观看免费 | 日韩精品视频免费在线观看 | 久久精品免费看 | 国产一二三四在线观看视频 | 亚洲欧美婷婷六月色综合 | 天天综合网天天综合色 | 韩国三级在线一区 | 欧美日韩高清在线观看 | 国产精品2018 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 92中文资源在线 | 日韩免费高清 | 亚洲精品美女视频 | 少妇性aaaaaaaaa视频 | 国产精品综合在线观看 | 99精品视频在线观看免费 | 特黄免费av | 国内精品福利视频 | 97碰在线 | 免费三及片 | 欧美精品中文在线免费观看 | 欧美大片www | 91精品视频在线免费观看 | 人人澡人人草 | 91在线影视| 91香蕉视频在线 | 黄色亚洲精品 | 黄色a在线| 国产剧情一区二区 | 999久久精品 | 视频在线观看日韩 | 日本精品一 | 国产自制av | 亚洲欧洲精品一区二区精品久久久 | 日韩久久影院 | 伊人婷婷网| 欧美日韩不卡一区二区三区 | 黄色网中文字幕 | 国产一级a毛片视频爆浆 | 久久久免费毛片 | 四虎影视精品永久在线观看 | 久久嗨 | av 一区二区三区 | 国产福利免费在线观看 | 国产视频一区在线播放 | 国产成人久久精品77777综合 | 日韩有码欧美 | 在线国产不卡 | 91精品久久久久久 | 久久国产精品久久精品 | 91精品国产综合久久福利 | 国产第页 | 欧美大香线蕉线伊人久久 | 亚洲精品乱码久久久久久 | 精品一区二区三区四区在线 | 国产精品一区二区三区久久 | 一区二区三区久久精品 | 91精品国产一区 | 狠狠干成人综合网 | 免费涩涩网站 | 97夜夜澡人人双人人人喊 | 成人毛片一区 | 香蕉国产91 | 最新av在线播放 | 国产精品成人久久 | aa一级片| 在线中文字幕观看 | 久久免费的视频 | 91精品国产高清 | 成年人精品 | 国产一区免费视频 | 日韩精品欧美视频 | 亚洲精品视频第一页 | 久久免费av电影 | 激情小说网站亚洲综合网 | 三级av免费 | 婷婷六月中文字幕 | 中文字幕在线观看一区二区 | 中文字幕资源网 国产 | av福利在线导航 | 久久国产精品久久w女人spa | 中国一级片在线播放 | 色丁香久久 | 免费在线日韩 | 亚洲理论片 | 日日干天夜夜 | 干干操操 | 国产小视频在线 | 中文字幕在线观看视频网站 | 国产不卡在线 | 久久久久久激情 | 天天干天天操天天拍 | 最近中文字幕视频网 | 99久久精品免费 | 91麻豆国产 | 久久国产精品小视频 | 久久99热久久99精品 | 久久久久久欧美二区电影网 | 日韩在线免费小视频 | 五月婷av| 久久人人爽人人 | 91在线免费观看国产 | 国产视频在线观看一区 | 日韩色一区二区三区 | 成人资源在线播放 | 在线观看视频免费大全 | 色a4yy| 精品综合久久久 | 国产成人av综合色 | av字幕在线 | 日本高清免费中文字幕 | 亚洲国产精品500在线观看 | 91精品老司机久久一区啪 | 手机看片99 | 在线观看中文字幕dvd播放 | 欧美久久久久久久久久久久 | 欧美日产在线观看 | 久久99热精品这里久久精品 | 毛片激情永久免费 | 草久久久 | 狠狠色狠狠色综合日日小说 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 欧美日韩在线视频免费 | 免费黄色特级片 | 国产123av| 色综合久久久 | 免费又黄又爽 | 最新国产精品亚洲 | 欧美日韩精品网站 | 成人av免费在线 | 久久1区| 久久精品99久久久久久 | 国产午夜精品久久久久久久久久 | 国产精品大全 | av在线在线 | 91人人在线 | 国产精品嫩草影院9 | 欧美 另类 交 | 国产成人久久精品 | 狠狠做深爱婷婷综合一区 | 91在线视频免费观看 | 黄色一级动作片 | 人人爽人人爱 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 国产精品欧美 | 在线观看av网站 | 中文字幕精品在线 | 成人超碰在线 | 色先锋av资源中文字幕 | 99国产高清 | 国产999免费视频 | 国产精品久久久久久久久久久杏吧 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 日韩丝袜 | 高清国产在线一区 | 国产99久久99热这里精品5 | 色网站视频 | 在线日韩亚洲 | 日韩av资源在线观看 | 亚洲视频 在线观看 | 日韩免费一级a毛片在线播放一级 | 91成人黄色 | 一级成人免费 | 日韩电影一区二区在线 | 91精品啪 | 精品在线观看一区二区三区 | 天天干干| 一区二区三区四区精品视频 | 中文av日韩 | 亚洲精品成人av在线 | 黄色三级免费观看 | 成在线播放 | 久久亚洲成人网 | 99精品视频免费看 | 国产一二三四在线视频 | 天天操比| 五月开心六月伊人色婷婷 | 摸bbb搡bbb搡bbbb | 伊人天天狠天天添日日拍 | 成人免费av电影 | 精品国产一区二区三区男人吃奶 | 国产精品久久久久久久久久ktv | 欧美va日韩va | 美女网站在线观看 | 亚洲视频在线观看 | 97视频免费观看2区 亚洲视屏 | 在线免费色| 免费高清在线视频一区· | 九九国产视频 | 97视频在线播放 | 欧美精品久久久久久久久免 | 在线精品观看 | 国产一区二区三区在线 | 日本三级人妇 | 成年人网站免费在线观看 | 91成人亚洲| 欧美日韩aa | 免费观看www视频 | 国产精品一区二区三区在线播放 | 69国产盗摄一区二区三区五区 | 亚洲精品乱码白浆高清久久久久久 | av在线免费观看不卡 | 色狠狠狠 | 黄色成人小视频 | 黄色一及电影 | 欧美另类色图 | 日黄网站 | 天天天天天干 | 91av手机在线观看 | 成人免费91 | 精品国产精品一区二区夜夜嗨 | 国产精品自产拍在线观看 | 超碰久热 | 国产中文字幕网 | 三上悠亚一区二区在线观看 | 国产精品wwwwww| 国产91成人在在线播放 | 日本久久免费电影 | 欧美在线视频第一页 | 国产一性一爱一乱一交 | 午夜精品一二区 | 天天干天天射天天爽 | 免费在线中文字幕 | 中文字幕4 | 欧美吞精| 久久尤物电影视频在线观看 | 久久久久久久久久久福利 | 91亚洲精品乱码久久久久久蜜桃 | 亚洲欧美日韩国产精品一区午夜 | 亚洲mv大片欧洲mv大片免费 | 天天操天天插 | 久久综合九色综合欧美就去吻 | 婷婷在线视频观看 | 国产日韩视频在线观看 | 亚洲欧美精品一区二区 | 正在播放国产一区 | 欧美一级视频免费看 | 黄色一二级片 | 国产精品网在线观看 | 天天干天天色2020 | 99久久综合国产精品二区 | 天天色天天干天天 | 国产亚洲精品久久久久动 | 成人97视频 | 亚洲精品一区二区精华 | 天天翘av| 99国产视频在线 | 97超碰资源站| 99精品国产在热久久下载 | 亚洲精品9 | 成人理论电影 | 少妇精品久久久一区二区免费 | 久久久久久久久久久久国产精品 | www婷婷| 91在线资源 | 久久精品五月 | 久久精品视 | 日本久久久久久久久久 | 五月婷婷激情五月 | 成年人免费在线观看网站 | 免费在线观看污网站 | 亚洲欧美日韩一区二区三区在线观看 | 在线视频精品 | 香蕉影院在线 | 黄色免费大片 | 亚洲永久av| 激情综合五月网 | 色先锋资源网 | 久久一本综合 | 国产老太婆免费交性大片 | 久久影视网 | 麻豆一二 | 黄色影院在线播放 | 69国产盗摄一区二区三区五区 | 97精品国自产拍在线观看 | 狠狠干夜夜 | 激情网站五月天 | 欧美一级日韩三级 | 在线观看亚洲视频 | 亚洲国产视频在线 | 日韩在线三级 | 2000xxx影视| 亚洲精品成人在线 | 成人夜晚看av| 亚洲精品久久久久久久不卡四虎 | 国产在线1区 | 国产成人黄色 | 手机在线日韩视频 | 69视频在线| a'aaa级片在线观看 | 最新免费中文字幕 | 色黄www小说| 中文字幕亚洲综合久久五月天色无吗'' | 欧美成人区| 欧洲精品二区 | 国产日本三级 | 日韩一区精品 | 成人黄色毛片视频 | 色噜噜色噜噜 | 国产亚洲精品女人久久久久久 | 国产亚洲精品久久久久久久久久 | 欧美精品乱码久久久久久按摩 | 亚洲国产午夜视频 | 亚洲最新合集 | 亚洲第一av在线 | 国内精品久久久精品电影院 | 午夜av色| 在线观看视频亚洲 | 97免费 | 美女黄网站视频免费 | 亚洲精品午夜久久久久久久 | 91探花国产综合在线精品 | 97色婷婷成人综合在线观看 | 伊人干综合 | 青草视频在线播放 | 免费av福利 | 国产精品久久久久久爽爽爽 | 久操操| 亚洲视频免费在线观看 | 五月婷婷导航 | 国产69久久精品成人看 | 超碰人人在 | 日韩欧美在线高清 | www久久九 | 男女靠逼app | 久久精品波多野结衣 | 亚洲一级国产 | 一区二区三区日韩在线 | 亚洲区精品视频 | 正在播放久久 | 日韩在线首页 | 日韩免费视频一区二区 | 亚洲视频专区在线 | 超级碰碰视频 | 日韩有码专区 | 亚洲国产精品一区二区尤物区 | 欧美日韩一区二区免费在线观看 | 青青草国产在线 | 久久国色夜色精品国产 | 五月开心六月伊人色婷婷 | 欧美a级片免费看 | 9999激情 | 国产在线永久 | 日韩国产欧美视频 | 久久久国产一区二区三区四区小说 | 久久精品久久99精品久久 | 久久天天拍 | 国产精品2018 | 日本中文字幕久久 | 免费三级黄色 | 免费看av在线 | 亚洲动漫在线观看 | 黄色亚洲大片免费在线观看 | 日本丶国产丶欧美色综合 | 日韩视频在线观看视频 | 欧美在线观看小视频 | 日本性xxxxx| 国产黄色精品视频 | 久久久久综合 | 国产91精品久久久久 | 麻豆视频在线免费 | 在线观看中文字幕一区 | 97看片 | 午夜视频一区二区三区 | 亚洲精品久久久蜜臀下载官网 | 免费三级影片 | 天天伊人网 | 亚洲九九九在线观看 | 亚洲一级片免费观看 | 天天操狠狠操夜夜操 | 黄色影院在线免费观看 | 四虎影视精品 | 国产精品999久久久 久产久精国产品 | 久久免费av | 日日爽天天操 | 国产美女网站在线观看 | 国产精品99久久久久久小说 | 99视频在线免费播放 | 久草在线资源观看 | 日本不卡一区二区三区在线观看 | 欧美精品国产综合久久 | 亚洲精品免费在线 | 一区二区中文字幕在线观看 | 国产一卡久久电影永久 | 午夜a区| 色射色| 久久精品欧美日韩精品 | 久碰视频在线观看 | 午夜黄网 | 中文字幕在线视频一区二区 | 亚洲欧美视频在线观看 | 色姑娘综合 | 激情久久综合 | 激情欧美一区二区三区免费看 | 天天色天天操综合网 | 香蕉国产91| 456免费视频 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美极品少妇xbxb性爽爽视频 | 激情xxxx| 黄色一级在线免费观看 | 国产一区二区网址 | 婷婷丁香久久五月婷婷 | 久久久久久久久久久电影 | 免费在线看成人av | 国产精品美女久久久久久久 | 亚洲精品高清在线观看 | 99久久婷婷国产一区二区三区 | 国产精品久久综合 | 69av国产| 久久伦理电影 | 国产69精品久久app免费版 | 国产精品日韩 | 国产亚洲激情视频在线 | 国产精品成人一区二区 | 日韩在线在线 | 91欧美日韩国产 | 亚洲成av人片在线观看www | 国产99久久九九精品 | 国产高清中文字幕 | 国产精品久久久久久久婷婷 | 日韩免费三区 | 亚洲国产精品500在线观看 | 999精品视频| 手机av在线免费观看 | 欧美日韩国产亚洲乱码字幕 | 成人在线免费观看视视频 | 五月激情丁香图片 | 中文在线中文资源 | av电影免费在线看 | 伊人热| 国产精品99久久久久的智能播放 | 久久久久久久久精 | 精品国产亚洲日本 | 色多多污污在线观看 | 国产成人精品综合久久久久99 | 最新国产福利 | 久久精品女人毛片国产 | 成人免费xyz网站 | 婷婷久久丁香 | 亚洲美女免费精品视频在线观看 | 色综合中文字幕 | 午夜精选视频 | 久久伊人婷婷 | 国产精品二区在线 | 国产精品永久免费视频 | 国产精品午夜久久久久久99热 | 国产系列精品av | 国产手机视频在线 | 中文字幕成人网 | 婷婷网站天天婷婷网站 | 欧美日韩国产mv | 国产美女搞久久 | 亚洲专区视频在线观看 | 伊人久久精品久久亚洲一区 | 免费的黄色av | 最新日韩中文字幕 | 在线观看网站你懂的 | 久久欧美精品 | 在线免费高清视频 | 最近在线中文字幕 | 久久成人18免费网站 | 夜夜夜草 | 欧美精品一区二区三区四区在线 | 蜜桃视频成人在线观看 | 999视频在线观看 | 免费一级特黄录像 | 久草视频国产 | 五月花激情 | 又黄又爽又色无遮挡免费 | 亚洲精品中文字幕在线观看 | 久草视频手机在线 | 日本久久不卡视频 | 欧美亚洲国产日韩 | 国内精品视频免费 | www色综合| 亚洲成av人片 | 国产色a在线观看 | 亚洲91精品 | 不卡的av电影 | 91精品一区国产高清在线gif | 久久精品韩国 | 久久久精品国产免费观看同学 | 九九久久久久久久久激情 | 成人在线你懂得 | 久草精品视频在线看网站免费 | 可以免费观看的av片 | 日日夜夜精品网站 | 天天要夜夜操 | 久久国产精品免费一区 | av片子在线观看 | 久久这里只有精品视频首页 | 欧美在线视频二区 | 国产成人在线精品 | 久久66热这里只有精品 | 国产日韩精品在线 | av色综合| 亚洲中字幕 | 亚洲欧洲一区二区在线观看 | 国产精品成人a免费观看 | 中文字幕丝袜 | 国产在线va| 色婷婷激情四射 | 麻豆精品传媒视频 | 人人爽人人澡人人添人人人人 | 久久久久国产成人免费精品免费 | 国产精品美女久久 | 正在播放亚洲精品 | 国产精品久久久久久久久久不蜜月 | 日韩在线观看 | 欧美视频网址 | 国产在线观看 | 97精品国产一二三产区 | 国产v在线 | 亚洲精品国产品国语在线 | 在线电影 你懂得 | 99免费在线观看视频 | av福利超碰网站 | 曰本免费av | 久草精品在线播放 | 成人欧美一区二区三区在线观看 | 中文字幕在线资源 | 91在线观 | 久久免费的精品国产v∧ | 日本精品久久 | 成人黄色小说视频 | 久久91久久久久麻豆精品 | 日韩色一区二区三区 | 午夜丁香视频在线观看 | 97福利视频 | 免费色av| 免费视频久久久 | 日韩v在线 | 亚洲另类xxxx| 日韩精品久久久免费观看夜色 | 五月婷婷亚洲 | 久草视频国产 | 国产成人资源 | 日韩高清三区 | 成av在线 | 日本3级在线观看 | 国产精品婷婷午夜在线观看 | 国产精品丝袜久久久久久久不卡 | 蜜臀av性久久久久av蜜臀三区 | 少妇啪啪av入口 | 国产污视频在线观看 | 国产 视频 久久 | 麻豆传媒一区二区 | 在线观看爱爱视频 | 亚洲影视资源 | 九九九九九九精品任你躁 | 久久久久激情电影 | 国产精品免费视频网站 | av3级在线| 人人爽人人澡人人添人人人人 | 亚洲少妇自拍 | 国产激情电影综合在线看 | 一区二精品 | 伊人超碰在线 | 手机在线中文字幕 | 精品视频免费 | 最新日韩中文字幕 | 香蕉影视 | 1024久久| 久久精品亚洲国产 | 在线中文字幕电影 | 欧美日韩高清一区二区 国产亚洲免费看 | 97超级碰碰碰视频在线观看 | 欧美日韩啪啪 | 国产九九九精品视频 | 久久精品美女视频 | 中文字幕高清视频 | 国语精品视频 | 久久久久久久久久网 | 欧美激情视频在线免费观看 | www最近高清中文国语在线观看 | 国产一区在线视频 | 91理论片午午伦夜理片久久 | 日韩激情片在线观看 | 日本中文字幕在线播放 | 日韩欧美成人网 | 国产一区播放 | 国产在线观看你懂的 | 亚洲精品国偷自产在线91正片 | 视频一区在线免费观看 | 在线观看日本高清mv视频 | 91视频在线播放视频 | 久久精品波多野结衣 | 亚洲精品国产欧美在线观看 | 天天爽夜夜爽人人爽一区二区 | 一级黄视频 | 国产黄色成人av | 天天射综合 | 五月天婷亚洲天综合网鲁鲁鲁 | 色成人亚洲网 | 国产视频一区二区在线播放 | 日本精品视频在线 | 久久久久久久国产精品视频 | 日批在线观看 | 久久免费成人精品视频 | 久久涩视频 | 色综合久久精品 | 亚洲一区日韩 | 麻豆视频免费在线观看 | 天天插夜夜操 | 天天干,天天插 | 日韩性色| 久久理论影院 | 韩国精品一区二区三区六区色诱 | 毛片的网址 | 成人网大片 | 成人羞羞免费 | 91.麻豆视频 | 国产一级片久久 | 激情综合中文娱乐网 | 亚洲精品高清视频 | 91高清视频 | 在线观看视频国产一区 | 国产成人久久精品77777 | 国产 亚洲 欧美 在线 | 黄色av一级片 | 人人澡视频 | 国产99久久久国产精品免费看 | 综合久久婷婷 | 夜夜骑天天操 | 激情欧美一区二区免费视频 | 国产中文字幕在线 | 国产高清视频网 | 黄色国产高清 | 国产在线美女 | 婷婷激情综合网 | 天天草天天爽 | 黄色国产成人 | 欧美国产视频在线 | 欧美激情精品久久久久 | 二区视频在线 | 中文字幕av播放 | 国产免费区 | 最新国产精品亚洲 | 最近在线中文字幕 | 国产视频久久久久 | 996久久国产精品线观看 | 国产中文字幕视频在线 | 亚洲三级毛片 | 在线观看视频一区二区三区 | 俺要去色综合狠狠 | 中文字幕精品久久 | 激情www | 在线观看日本韩国电影 | 精品国产一区二区三区久久久 | 日韩在线视频观看免费 | 日韩一级成人av | 米奇四色影视 | 亚洲涩涩涩涩涩涩 | 日韩国产精品毛片 | 免费a一级 | 高清免费在线视频 | 亚洲一区二区三区在线看 | 中文字幕在线观看完整版电影 | 久久精品波多野结衣 | 麻豆传媒视频在线播放 | 亚洲电影在线看 | 午夜影视剧场 | 91精品久久久久久综合乱菊 | 日本久久91 | 久久免费毛片 | 伊人中文字幕在线 | 亚洲一区网站 | 在线观看亚洲精品视频 | 国产精品国产三级在线专区 | 天天干天天操人体 | 亚洲人成免费网站 | 91热爆视频| 欧美另类sm图片 | 在线观看的黄色 | 91精品天码美女少妇 | 毛片无卡免费无播放器 | 中国美女一级看片 | 狠狠色狠狠色综合日日92 | 国产伦理一区二区三区 | 日韩av一区二区在线影视 | 一区二区三区四区免费视频 | 免费久久99精品国产 | 亚洲伦理中文字幕 | 黄色三级网站 | 国产一区视频免费在线观看 | 美腿丝袜av | 成人免费在线观看入口 | 亚洲精品黄色 | 久久婷婷久久 | 久久精品99久久 | 在线v片免费观看视频 | 久久五月情影视 | 激情视频久久 | 日韩成人免费在线观看 | 中文字幕在线视频精品 | 亚洲精品资源在线 | 国产自产在线视频 | 精品国产1区 | 国产精品女同一区二区三区久久夜 | 久久久久国产a免费观看rela | 国产免费a | 国产精品毛片完整版 | 日韩精品中字 | 午夜视频在线观看一区二区三区 | 久久国产精品一二三区 | 天堂网在线视频 | 精品久久一级片 | 一本到视频在线观看 | 中文字幕韩在线第一页 | 国产一线天在线观看 | 91精品国产乱码久久 | 毛片视频网址 | 欧美另类xxxxx | 国产精品一区二区三区在线免费观看 | 久久国产系列 | 激情欧美日韩一区二区 | 亚洲最新av在线网址 | 日本精品一区二区 | av在线电影免费观看 | 日韩精品中文字幕在线播放 | 久草在在线 | 中文字幕中文字幕在线中文字幕三区 | 四虎在线视频 | 久久精品99国产精品日本 | 天天操天天射天天舔 | 午夜国产福利在线 | 日韩精品久久久久久久电影竹菊 | 日韩视频免费观看高清 | av大全在线免费观看 | 色小说av | 黄色的视频 | 久久久久99精品成人片三人毛片 | 在线观看涩涩 | 免费看黄在线观看 | 美女福利视频一区二区 | 国产精品毛片一区视频播 | 久草免费在线视频观看 | 日韩高清黄色 | 免费人成网 | 国产成人综合图片 | 18网站在线观看 | 婷婷精品国产欧美精品亚洲人人爽 | 成片免费观看视频大全 | 国产欧美中文字幕 | 国产精品久久免费看 | 久久久久免费精品视频 | 日本中文字幕在线播放 | 午夜精品电影 | 色香蕉在线视频 | 国产精品视频在线看 | 亚洲黄色激情小说 | www.香蕉| 婷婷久久一区二区三区 | 国产91在线观 | av福利在线看 | 91成人国产 | 不卡av在线播放 | 国产一区二区在线免费播放 | 免费观看高清 | 天天干天天操天天射 | 久久免费精彩视频 | 国产女做a爱免费视频 | 国产精品久久久久免费观看 | 一区二区三区免费在线 | 日韩91精品 |