欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Android中動(dòng)畫的實(shí)現(xiàn)原理是什么-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Android中動(dòng)畫的實(shí)現(xiàn)原理是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到泉港網(wǎng)站設(shè)計(jì)與泉港網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋泉港地區(qū)。

Android動(dòng)畫分類

在Android中我們一般將動(dòng)畫分為兩類,一類是View Animation(視圖動(dòng)畫),一類是Property Animation,當(dāng)然也有說(shuō)分為三種,F(xiàn)rame Animation,Tween Animation,和Property Animation,由于前兩種一般都是作用于整個(gè)View的,所以就統(tǒng)稱為View Animation。在谷歌官方文檔中也是按兩種分類來(lái)講解的。

在Android 5.0開(kāi)始增加了Material Design ,Material Design 中實(shí)現(xiàn)了一些動(dòng)畫為用戶提供操作反饋并在用戶與您的應(yīng)用進(jìn)行互動(dòng)時(shí)提供視覺(jué)連續(xù)性。 它將為按鈕與操作行為轉(zhuǎn)換提供一些默認(rèn)動(dòng)畫,我們可以定制觸摸反饋,使用揭露效果,定制操作行為轉(zhuǎn)換,指定定制轉(zhuǎn)換,使用轉(zhuǎn)換啟動(dòng)一個(gè)操作行為,以共享元素啟動(dòng)一個(gè)操作行為等等。

Frame Animation

由于Frame Animation,Tween Animation的實(shí)現(xiàn)還是有區(qū)別的,暫且就將這兩種方式實(shí)現(xiàn)分開(kāi)介紹,F(xiàn)rame Animation其實(shí)就是將一系列的圖片一張一張的展示出來(lái),這個(gè)和我們看電影是類似的,由于人眼有一個(gè)可接收的暫留時(shí)間,這也就是為什么人在線看視頻會(huì)感覺(jué)卡頓。當(dāng)然我們實(shí)現(xiàn)Frame Animation就是這個(gè)依據(jù),當(dāng)播放相同的圖片張數(shù)用時(shí)越短也就越流暢,自然人就會(huì)感覺(jué)是一個(gè)動(dòng)畫。我們常見(jiàn)的Gif其實(shí)也是幀動(dòng)畫,如果你用PhotoShop打開(kāi)Gif動(dòng)畫,會(huì)發(fā)現(xiàn)里面是有很多圖層的也就是很多幀。

對(duì)于Frame動(dòng)畫有兩種實(shí)現(xiàn)方式,第一種方式就是在drawable文件夾下創(chuàng)建一個(gè)xml文件。它的語(yǔ)法很簡(jiǎn)單,如下

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
  android:oneshot=["true" | "false"] >
  <item
    android:drawable="@[package:]drawable/drawable_resource_name"
    android:duration="integer" />
</animation-list>

看了上面你會(huì)發(fā)現(xiàn)實(shí)現(xiàn)Frame動(dòng)畫很簡(jiǎn)單,屬性很少,animation-list 是動(dòng)畫的根元素,在根元素中的oneshot屬性表示動(dòng)畫執(zhí)行次數(shù),如果設(shè)置為true表示只播放一次,如果false則表示會(huì)一直循環(huán)執(zhí)行。在根元素下有item元素,該元素就是我們要添加的圖片,每一個(gè)item表示一幀,item下的drawable就是我們的圖片資源,duration就是該幀動(dòng)畫執(zhí)行的時(shí)間。例如

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:drawable="@mipmap/run1"
    android:duration="200" />
  <item
    android:drawable="@mipmap/run2"
    android:duration="200" />
  <item
    android:drawable="@mipmap/run3"
    android:duration="200" />
  <item
    android:drawable="@mipmap/run4"
    android:duration="200" />
  <item
    android:drawable="@mipmap/run5"
    android:duration="200" />
  <item
    android:drawable="@mipmap/run6"
    android:duration="200" />
  <item
    android:drawable="@mipmap/run7"
    android:duration="200" />
  <item
    android:drawable="@mipmap/run8"
    android:duration="200" />
</animation-list>

使用方法如下

//可以在xml中設(shè)置background  
   imageView.setBackgroundResource(R.drawable.frame_run_animation);
AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();
animationDrawable.start();

Android中動(dòng)畫的實(shí)現(xiàn)原理是什么

運(yùn)行效果圖如上,在上面我們沒(méi)有添加oneshot屬性,則該屬性默認(rèn)false,也就是說(shuō)該動(dòng)畫會(huì)一直循環(huán)執(zhí)行,當(dāng)我們?cè)O(shè)置true后則播放到最后一幀時(shí)動(dòng)畫停止,當(dāng)我們想停止時(shí)可以使用AnimationDrawable 的stop方法,它還提供了isRunning()方法判斷是否已經(jīng)在執(zhí)行動(dòng)畫。另外我們還需要注意的是小心OOM。

當(dāng)然用代碼實(shí)現(xiàn)也很簡(jiǎn)單,如下

private void addFrame() {
    AnimationDrawable animationDrawable = new AnimationDrawable();
    int[] mipmaps = new int[]{R.mipmap.run1, R.mipmap.run2, R.mipmap.run3,
        R.mipmap.run4, R.mipmap.run5, R.mipmap.run6, R.mipmap.run7, R.mipmap.run8,};
    for (int i = 1; i <= 8; i++) {
      int id=mipmaps[i-1];
      //或者使用下面方式,注意如果圖片資源放在drawable下時(shí)將mipmap修改下
      //int id = getResources().getIdentifier("run" + i, "mipmap", getPackageName());
      Drawable drawable = getResources().getDrawable(id);
      animationDrawable.addFrame(drawable, 200);
    }
    animationDrawable.setOneShot(false);
    imageView.setBackgroundDrawable(animationDrawable);
    animationDrawable.start();
  }

Tween Animation

Tween Animation即補(bǔ)間動(dòng)畫,主要分為四種,分別是平移、縮放、旋轉(zhuǎn)、透明度,直接上語(yǔ)法

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
  //插值器
  android:interpolator="@[package:]anim/interpolator_resource"
  //動(dòng)畫結(jié)束后View是否停留在結(jié)束的位置
  android:fillAfter=["true" | "false"] 
  //重復(fù)的模式,默認(rèn)為restart,即重頭開(kāi)始重新運(yùn)行,reverse即從結(jié)束開(kāi)始向前重新運(yùn)行
  android:repeatMode="restart/reverse"
  //子元素是否共用此插值器
  android:shareInterpolator=["true" | "false"] >
  <alpha
    //開(kāi)始透明度0.0(全透明)到1.0(完全不透明)
    android:fromAlpha="float"
    android:toAlpha="float"
    //動(dòng)畫執(zhí)行時(shí)間
    android:duration="integer" />
  <scale 
    //其實(shí)X縮放大于0,1的時(shí)候表示不縮放,小于1縮小,大于1放大
    android:fromXScale="float"
    android:toXScale="float"
    android:fromYScale="float"
    android:toYScale="float"
    //縮放中心,也可以穿fraction值
    android:pivotX="float"
    android:pivotY="float"
    android:duration="integer" />
  <translate
    //表示 x 的起始值
    android:fromXDelta="float/fraction"
    android:toXDelta="float"
    android:fromYDelta="float"
    android:toYDelta="float" 
    android:duration="integer" />
  <rotate
    //起始的旋轉(zhuǎn)角度
    android:fromDegrees="float"
    android:toDegrees="float"
    android:pivotX="float"
    android:pivotY="float"
    android:duration="integer" />
  <set>
    ...
  </set>
</set>

這是官方給的語(yǔ)法,set 是一個(gè)動(dòng)畫集合,內(nèi)部可以是多個(gè)動(dòng)畫的組合,也可以嵌套set,這里包含了動(dòng)畫實(shí)現(xiàn)的所有屬性。在上面的語(yǔ)法中我們需要注意的是平移的時(shí)候其實(shí)位置接受百分比數(shù)值:從-100到100的值,以“%”結(jié)尾,表示百分比相對(duì)于自身;從-100到100的值,以“%p”結(jié)尾,表示百分比相對(duì)于父容器。例如平移開(kāi)始位置在自身中間則是50%,如平時(shí)開(kāi)始位置在父容器的則是50%p.

例如有些人給我們的Activity會(huì)加一些從左邊進(jìn)右邊出的動(dòng)畫,那么當(dāng)我們打開(kāi)Activity時(shí)將Activity布局的fromXDelta值-100%p并將toXDelta為0%p,那么我們看到的效果就是從左邊進(jìn)入了。

插值器

在動(dòng)畫插值器起的作用主要是改變動(dòng)畫的執(zhí)行速率,一般情況我們不需要自己實(shí)現(xiàn)插值器,因?yàn)樵贏ndroid中已經(jīng)給我們提供了9種插值器,應(yīng)該夠我們使用了,我們使用插值器后會(huì)讓動(dòng)畫執(zhí)行的效果更酷炫,當(dāng)然想自定義插值器也不難,可以查看已經(jīng)實(shí)現(xiàn)插值器源碼做參考。

accelerate_decelerate_interpolator:先加速后減速accelerate_interpolator:一直加速anticipate_interpolator: 開(kāi)始的時(shí)候先向后甩一點(diǎn)然后向前,就好比人扔?xùn)|西會(huì)先向后甩一下,這樣才能拋的遠(yuǎn)anticipate_overshoot_interpolator:和上一種插值器相似,先向后拋然后向前,到達(dá)終點(diǎn)后會(huì)有回彈一下效果,好比我們將球拋到墻上,然后反彈回來(lái)bounce_interpolator:動(dòng)畫結(jié)束的時(shí)候彈起,類似皮球落地,會(huì)彈幾下才停止cycle_interpolator:動(dòng)畫循環(huán)播放特定的次數(shù)回到原點(diǎn),速率改變沿著正弦曲線decelerate_interpolator:減速的插值器,剛開(kāi)始速度快,然后越來(lái)越慢直到停止linear_interpolator:線性的插值器。從開(kāi)始到結(jié)束勻速運(yùn)動(dòng)overshoot_interpolator:向前超過(guò)設(shè)定值一點(diǎn)然后返回

下面簡(jiǎn)單實(shí)現(xiàn)一個(gè)動(dòng)畫,動(dòng)畫效果如下面截圖,是一個(gè)透明度,平移,縮放的動(dòng)畫同時(shí)執(zhí)行的動(dòng)畫。

Android中動(dòng)畫的實(shí)現(xiàn)原理是什么

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
  android:interpolator="@android:anim/bounce_interpolator"
  android:shareInterpolator="true">
  <translate
    android:duration="400"
    android:fromXDelta="50%p"
    android:fromYDelta="-50%p"
    android:toXDelta="0%"
    android:toYDelta="0%" />
  <scale
    android:duration="400"
    android:fromXScale="0.0"
    android:fromYScale="0.0"
    android:toXScale="1.0"
    android:toYScale="1.0" />
  <alpha
    android:duration="400"
    android:fromAlpha="0.0"
    android:toAlpha="1.0" />
</set>

然后使用下面代碼給ImageView加入動(dòng)畫。

Animation animation= AnimationUtils.loadAnimation(this,R.anim.anim_in_left_top);
 imageView.startAnimation(animation);

當(dāng)然我們也可給動(dòng)畫加上監(jiān)聽(tīng)。如

animation.setAnimationListener(new Animation.AnimationListener() {
          @Override
          public void onAnimationStart(Animation animation) {
          }
          @Override
          public void onAnimationEnd(Animation animation) {
          }
          @Override
          public void onAnimationRepeat(Animation animation) {
          }
        });

上面的監(jiān)聽(tīng)分別是動(dòng)畫開(kāi)始結(jié)束和更新時(shí)候的回調(diào)。我們?cè)诨卣{(diào)中做一些額外的操作。在代碼中實(shí)現(xiàn)動(dòng)畫就不在細(xì)說(shuō),主要對(duì)應(yīng)AnimationSet, TranslateAnimation,ScaleAnimation,AlphaAnimation,RotateAnimation。

Propterty Animation

屬性動(dòng)畫是3.0之后引入的,在View動(dòng)畫中雖然我們看到了我們的控件位置發(fā)生發(fā)生變化,比如Button雖然位置變化了,但是點(diǎn)擊響應(yīng)區(qū)域還在原來(lái)的位置。而屬性動(dòng)畫就可以解決這種問(wèn)題。它可以作用于View的屬性。
語(yǔ)法

<set
//執(zhí)行的順序together同時(shí)執(zhí)行,sequentially連續(xù)執(zhí)行
 android:ordering=["together" | "sequentially"]>
  <objectAnimator
   //屬性動(dòng)畫名字,例如alpha" 或者"backgroundColor"等
    android:propertyName="string"
    android:duration="int"
    //屬性的開(kāi)始值
    android:valueFrom="float | int | color"
    android:valueTo="float | int | color"
    //該動(dòng)畫開(kāi)始的延遲時(shí)間
    android:startOffset="int"
    //動(dòng)畫重復(fù)次數(shù),-1表示一直循環(huán),1表示循環(huán)一次也就是播放兩次,默認(rèn)0,播放一次
    android:repeatCount="int"
    //repeatCount設(shè)置-1時(shí)才會(huì)有效果
    android:repeatMode=["repeat" | "reverse"]
    //如果值是顏色,則不用使用此屬性
    android:valueType=["intType" | "floatType"]/>
  <animator
    android:duration="int"
    android:valueFrom="float | int | color"
    android:valueTo="float | int | color"
    android:startOffset="int"
    android:repeatCount="int"
    android:repeatMode=["repeat" | "reverse"]
    android:valueType=["intType" | "floatType"]/>

  <set>
    ...
  </set>
</set>

下面列出了常見(jiàn)的屬性名字,另外需要注意的是,使用屬性動(dòng)畫時(shí),必須有相應(yīng)屬性的set/get方法,否則屬性動(dòng)畫沒(méi)有效果的。

translationX 和 translationY : 控制View距離左邊和頂部的距離的增加值。是一個(gè)相對(duì)值。相對(duì)于自身位置的具體。

rotation 、 rotationX 和 rotationY : rotation 是控制View圍繞其支點(diǎn)進(jìn)行旋轉(zhuǎn)。 rotationX 和 rotationY 分別是圍繞X軸和Y軸旋轉(zhuǎn)。

scaleX 和 scaleY : 控制View的縮放。

pivotX 和 pivotY : 控制View的支點(diǎn)位置,進(jìn)行旋轉(zhuǎn)和縮放,默認(rèn)是View的中點(diǎn)。它們都是 float 值, 0 表示View的最左邊和最頂端, 1 表示最右端和最下端。

alpha : 控制View的透明度。

x 和 y : 控制View在布局容器中距離左邊和頂部的距離。是一個(gè)絕對(duì)值。

例如我們實(shí)現(xiàn)一個(gè)旋轉(zhuǎn)加透明度變化的動(dòng)畫,效果圖如下

Android中動(dòng)畫的實(shí)現(xiàn)原理是什么

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
  android:ordering="sequentially">
  <objectAnimator
    android:duration="500"
    android:propertyName="rotation"
    android:valueFrom="0"
    android:valueTo="180" />
  <objectAnimator
    android:duration="500"
    android:propertyName="alpha"
    android:valueFrom="1.0f"
    android:valueTo="0.5f" />
</set>

然后

AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(this,
        R.animator.property_animator);
set.setTarget(imageView);
set.start();

當(dāng)然不用xml書寫也是很簡(jiǎn)單的,如下代碼

ObjectAnimator.ofFloat(imageView,"rotation",0,180,90,180)
.setDuration(2000).start();

代碼實(shí)現(xiàn)的效果就是在2秒內(nèi)先旋轉(zhuǎn)到180度,在回到90度在轉(zhuǎn)回180度
效果圖如

Android中動(dòng)畫的實(shí)現(xiàn)原理是什么

在上面代碼實(shí)現(xiàn)了一直屬性動(dòng)畫,那么如果我們想同時(shí)作用幾個(gè)屬性那該如何操作呢。此時(shí)我們有兩種實(shí)現(xiàn)方式分別是類PropertyValuesHolder和AnimatorSet,話不多說(shuō),先上圖再直接上代碼。

Android中動(dòng)畫的實(shí)現(xiàn)原理是什么

private void startPropertyAnimation3(){
    PropertyValuesHolder translationX = PropertyValuesHolder.ofFloat("translationX", -200,-100,100, 200,300);
    PropertyValuesHolder scaleX = PropertyValuesHolder.ofFloat("scaleX", 1.0f, 2.0f);
    PropertyValuesHolder rotate = PropertyValuesHolder.ofFloat("rotation", 0f, 360f);
    PropertyValuesHolder rotationY = PropertyValuesHolder.ofFloat("rotationX", 0f, 180f);
    ObjectAnimator together = ObjectAnimator.ofPropertyValuesHolder(imageView, translationX,rotate, scaleX, rotationY);
    together.setDuration(3000);
    together.start();
  }
//或者使用AnimatorSet,此方法使用的是按順序播放。
  private void startPropertyAnimation4(){
    ObjectAnimator translationX = ObjectAnimator.ofFloat(imageView, "translationX", -200,-100,100, 200,300);
    ObjectAnimator scaleX = ObjectAnimator.ofFloat(imageView, "scaleX", 1.0f, 2.0f).setDuration(1000);
    ObjectAnimator rotation = ObjectAnimator.ofFloat(imageView, "rotation", 0f, 360f).setDuration(1000);
    ObjectAnimator rotationX=ObjectAnimator.ofFloat(imageView,"rotationX", 0f, 180f).setDuration(1000);
    AnimatorSet set = new AnimatorSet();
    set.playSequentially(translationX, scaleX, rotation,rotationX);
    set.setDuration(4000);
    set.start();
  }

Fragment/Activity動(dòng)畫

其實(shí)實(shí)現(xiàn)Activity及Fragment切換動(dòng)畫也是很簡(jiǎn)單的,具體的動(dòng)畫效果制作可以使用即使上面介紹的補(bǔ)間動(dòng)畫。例如我們Fragment動(dòng)畫。

FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
transaction.replace(R.id.fragment_container, fragment, fragmentTag);
transaction.commit();

Activity實(shí)現(xiàn)動(dòng)畫也很簡(jiǎn)單,在Activity中提供了overridePendingTransition(int enterAnim, int exitAnim) 方法,該方法接收兩個(gè)參數(shù),第一個(gè)參數(shù)是Activity進(jìn)入時(shí)的動(dòng)畫,第二個(gè)參數(shù)是Activity退出時(shí)的動(dòng)畫。該方法一般寫在startActivity()后和finish()后,如果我們想打開(kāi)或者退出不顯示動(dòng)畫,可將參數(shù)設(shè)置為0。

在上面的我們介紹了Activity/Fragment在代碼中實(shí)現(xiàn)動(dòng)畫的方法,當(dāng)然還有一種簡(jiǎn)單的實(shí)現(xiàn)方式,那就是在主題中設(shè)置動(dòng)畫。
對(duì)于Activity

<style name="CustomeActivityStyle" parent="AppTheme">
    <item name="android:windowAnimationStyle">@style/AnimationStyle</item>
  </style>
  <style name="AnimationStyle">
    <item name="android:activityCloseEnterAnimation">@anim/slide_in_left</item>
    <item name="android:activityCloseExitAnimation">@anim/slide_out_right</item>
    <item name="android:activityOpenEnterAnimation">@anim/slide_in_left</item>
    <item name="android:activityOpenExitAnimation">@anim/slide_out_right</item>
  </style>

可能你不太理解為什么是設(shè)置了四種,假如有Activity1和Activity2。當(dāng)我們?cè)贏ctivity1中跳轉(zhuǎn)到Activity2時(shí),Activity1在頁(yè)面上消失是執(zhí)行的:activityOpenExitAnimation動(dòng)畫,Activity2出現(xiàn)在屏幕上執(zhí)行的動(dòng)畫是activityOpenEnterAnimation。當(dāng)Activity2 finish返回Activity1時(shí),Activity2執(zhí)行的動(dòng)畫是activityCloseExitAnimation,Activity1顯示在屏幕執(zhí)行的是activityCloseEnterAnimation。創(chuàng)建上面主題后我們需要將該主題應(yīng)用到我們的Activty中就可以了。

同理Fragment也可相應(yīng)設(shè)置,如activityCloseEnterAnimation改為fragmentCloseEnterAnimation即可。

除此之外我們也可以使用windowAnimation,它包括 windowEnterAnimation 和 windowExitAnimation。注意的一點(diǎn)就是WindowAnimation的控制權(quán)大于Activity/Fragment Animation的控制權(quán)。

除了上面介紹的動(dòng)畫實(shí)現(xiàn),還有一些動(dòng)畫是從Android5.0增加的,你可以參考文末給出的鏈接文章,酷炫的Activity切換動(dòng)畫,打造更好的用戶體驗(yàn)。個(gè)人感覺(jué)這篇文章介紹的挺詳細(xì)。對(duì)本文缺少的內(nèi)容也做了一個(gè)補(bǔ)充。到這里該篇文章就暫時(shí)告一段落,有問(wèn)題歡迎指出,Have a wonderful day.

關(guān)于Android中動(dòng)畫的實(shí)現(xiàn)原理是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)頁(yè)名稱:Android中動(dòng)畫的實(shí)現(xiàn)原理是什么-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://aaarwkj.com/article14/gpoge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、軟件開(kāi)發(fā)、網(wǎng)站策劃、品牌網(wǎng)站設(shè)計(jì)、商城網(wǎng)站、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
日本黄色中文字幕在线观看| 国产精品自拍国产精品| 后入动漫视频在线观看| 亚洲成人免费电影91| 久久久久精品久久久| 国产精品白丝一区二区三区| 亚洲激情午夜福利视频| 中文字幕在线视频黄字幕| 欧美成人精品欧美一级黄片| 亚洲一二三无人区是什么| 亚洲男人天堂在线播放| 日韩电影在线观看二区| 素人人妻一区二区三区| 我的极品小姨在线观看| 激情啪啪啪的免费网站| 国产欧美日韩精品一区| 亚洲欧美另类国产一区| 农村精品少妇久久久久久| 欧美亚洲另类在线日韩国产| 亚洲欧美日韩伦理一区| 国产一区二区视频在线| 激情av一区二区不卡| 欧美精品国产一区二区免费| 久久精品国产亚洲av波多| 欧美大吊视频在线观看| 亚洲欧美一区二区中文字幕| 日韩欧美亚洲国产另类| 夫妻性生活视频一级片| 98精品偷拍视频一区二区三区| 五月婷婷丁香婷婷丁香| 人妻一区日韩二区国产| 熟女人妻一区二区三区免费看| 日韩av在线观看大全| 欧美黄片精品在线观看| 不卡视频一区二区日韩| 日韩精品色av一区二区| av真人青青小草一区二区欧美| 中文字幕av不卡一区| 国产亚洲美女在线视频视频| 在线视频日韩欧美国产二区| 国产精品夜色一区二区三区不卡|