亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

自定義控件三部曲之動畫篇(一)——alpha、scale、translate、rotate、set的xml屬性及用法

2019-11-07 23:29:25
字體:
來源:轉載
供稿:網友

相關文章:

《Android自定義控件三部曲文章索引》:http://blog.csdn.net/harvic880925/article/details/50995268

一、概述

Android的animation由四種類型組成:alpha、scale、translate、rotate,對應android官方文檔地址:《Animation Resources》

1、xml配置文件中

alpha漸變透明度動畫效果
scale漸變尺寸伸縮動畫效果
translate畫面轉換位置移動動畫效果
rotate畫面轉移旋轉動畫效果

下面我們逐個講講每個標簽的屬性及用法。

2、動作文件存放位置

動作定義文件應該存放在res/anim文件夾下,訪問時采用R.anim.XXX.xml的方式,位置如圖:

二、scale標簽——調節尺寸

1、自有屬性

scale標簽是縮放動畫,可以實現動態調控件尺寸的效果,有下面幾個屬性:

android:fromXScale    起始的X方向上相對自身的縮放比例,浮點值,比如1.0代表自身無變化,0.5代表起始時縮小一倍,2.0代表放大一倍;android:toXScale        結尾的X方向上相對自身的縮放比例,浮點值;android:fromYScale    起始的Y方向上相對自身的縮放比例,浮點值,android:toYScale        結尾的Y方向上相對自身的縮放比例,浮點值;android:pivotX            縮放起點X軸坐標,可以是數值、百分數、百分數p 三種樣式,比如 50、50%、50%p,當為數值時,表示在當前View的左上角,即原點處加上50px,做為起始縮放點;如果是50%,表示在當前控件的左上角加上自己寬度的50%做為起始點;如果是50%p,那么就是表示在當前的左上角加上父控件寬度的50%做為起始點x軸坐標。(具體意義,后面會舉例演示)android:pivotY           縮放起點Y軸坐標,取值及意義跟android:pivotX一樣。

下面看一個實例,當scale里的屬性這樣設置時,效果會怎樣呢:

[html] view plain copy PRint?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50”      android:pivotY=“50”      android:duration=“700” />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50"    android:pivotY="50"    android:duration="700" />

(1)、pivotX取值數值時(50)

這個控件,寬度和高度都是從0放大到1.4倍,起始點坐標在控件左上角(坐標原點),向x軸正方向和y軸正方向都加上50像素;

根據pivotX,pivotY的意義,控件的左上角即為控件的坐標原點,這里的起始點是在控件的原點的基礎上向X軸和Y軸各加上50px,做為起始點,如下圖中圖二所示

                               圖一                                                             圖二    

(2)、pivotX取值百分數時(50%)下面再看看當pivotX、pivotY取百分數的時候,起始點又在哪里?

上面我們講了,pivotX的值,當取50%時,表示在原點坐標的基礎上加上的自己寬度的50%,看看效果:

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%”      android:pivotY=“50%”      android:duration=“700” />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%"    android:pivotY="50%"    android:duration="700" />縮放位置大小仍然從0-1.4,只改變pivotX和pivotY;起始點位置如下圖中圖二所示:

                               圖一                                                                 圖二

   (3)、pivotX取值50%p時

前面說過,當取值在百分數后面加上一個字母p,就表示,取值的基數是父控件,即在原點的基礎上增加的值是父標簽的百分值。[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%p”      android:pivotY=“50%p”      android:duration=“700” />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%p"    android:pivotY="50%p"    android:duration="700" />

效果圖,及起始點坐標圖如下所示:

        

2、從Animation類繼承的屬性

Animation類是所有動畫(scale、alpha、translate、rotate)的基類,這里以scale標簽為例,講解一下,Animation類所具有的屬性及意義。關于Animation類的官方文檔位置為:《Animation》android:duration        動畫持續時間,以毫秒為單位 android:fillAfter          如果設置為true,控件動畫結束時,將保持動畫最后時的狀態android:fillBefore       如果設置為true,控件動畫結束時,還原到開始動畫前的狀態android:fillEnabled    與android:fillBefore 效果相同,都是在動畫結束時,將控件還原到初始化狀態android:repeatCount 重復次數android:repeatMode 重復類型,有reverse和restart兩個值,reverse表示倒序回放,restart表示重新放一遍,必須與repeatCount一起使用才能看到效果。因為這里的意義是重復的類型,即回放時的動作。android:interpolator  設定插值器,其實就是指定的動作效果,比如彈跳效果等,不在這小節中講解,后面會單獨列出一單講解。

對于android:duration,就不再講解了,就是動畫的持續時長,以毫秒為單位,下面看看android:fillAfter和android:fillBefore

(1)android:fillAfter:保持動畫結束的狀態

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%”      android:pivotY=“50%”      android:duration=“700”       android:fillAfter=“true”      />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%"    android:pivotY="50%"    android:duration="700"     android:fillAfter="true"    />

(2)android:fillBefore  還原初始化狀態

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%”      android:pivotY=“50%”      android:duration=“700”       android:fillBefore=“true”      />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%"    android:pivotY="50%"    android:duration="700"     android:fillBefore="true"    />                android:fillBefore=”true”                                 android:fillEnable=”true”

   

上面順便列出了,當僅設定fillEanble為true時的效果,這兩個的標簽的效果完全相同。

(3)、android:repeatMode=”restart /reverse”  設定回放類型

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%”      android:pivotY=“50%”      android:duration=“700”       android:fillBefore=“true”      android:repeatCount=“1”      android:repeatMode=“restart”  />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%"    android:pivotY="50%"    android:duration="700"     android:fillBefore="true"    android:repeatCount="1"    android:repeatMode="restart"/>        androidRepeatMode設為restart                       androidRepeatMode設為reverse       

三、alpha標簽——調節透明度

1、自身屬性

android:fromAlpha   動畫開始的透明度,從0.0 –1.0 ,0.0表示全透明,1.0表示完全不透明android:toAlpha       動畫結束時的透明度,也是從0.0 –1.0 ,0.0表示全透明,1.0表示完全不透明

使用示例:

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <alpha xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromAlpha=“1.0”      android:toAlpha=“0.1”      android:duration=“3000”      android:fillBefore=“true”>  </alpha>  
<?xml version="1.0" encoding="utf-8"?><alpha xmlns:android="http://schemas.android.com/apk/res/android"    android:fromAlpha="1.0"    android:toAlpha="0.1"    android:duration="3000"    android:fillBefore="true"></alpha>

2、從Animation類繼承的屬性

android:duration        動畫持續時間,以毫秒為單位 android:fillAfter          如果設置為true,控件動畫結束時,將保持動畫最后時的狀態android:fillBefore       如果設置為true,控件動畫結束時,還原到開始動畫前的狀態android:fillEnabled    與android:fillBefore 效果相同,都是在動畫結束時,將控件還原到初始化狀態android:repeatCount 重復次數android:repeatMode 重復類型,有reverse和restart兩個值,reverse表示倒序回放,restart表示重新放一遍,必須與repeatCount一起使用才能看到效果。因為這里的意義是重復的類型,即回放時的動作。android:interpolator  設定插值器,其實就是指定的動作效果,比如彈跳效果等,不在這小節中講解,后面會單獨列出一單講解。與scale標簽意義一樣,就不再綴述。

四、rotate標簽——旋轉

1、自身屬性

android:fromDegrees     開始旋轉的角度位置,正值代表順時針方向度數,負值代碼逆時針方向度數android:toDegrees         結束時旋轉到的角度位置,正值代表順時針方向度數,負值代碼逆時針方向度數android:pivotX               縮放起點X軸坐標,可以是數值、百分數、百分數p 三種樣式,比如 50、50%、50%p,具體意義已在scale標簽中講述,這里就不再重講android:pivotY               縮放起點Y軸坐標,可以是數值、百分數、百分數p 三種樣式,比如 50、50%、50%p

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <rotate xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromDegrees=“0”      android:toDegrees=“-650”      android:pivotX=“50%”      android:pivotY=“50%”      android:duration=“3000”      android:fillAfter=“true”>        </rotate>  
<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android"    android:fromDegrees="0"    android:toDegrees="-650"    android:pivotX="50%"    android:pivotY="50%"    android:duration="3000"    android:fillAfter="true"></rotate>圍繞自身從0度逆時針旋轉650度                            圍繞自身從0度順時針旋轉650度

android:fromDegrees=”0”                                       android:fromDegrees=”0”

android:toDegrees=”-650”                                      android:toDegrees=”650”

     

2、從Animation類繼承的屬性

android:duration        動畫持續時間,以毫秒為單位 android:fillAfter          如果設置為true,控件動畫結束時,將保持動畫最后時的狀態android:fillBefore       如果設置為true,控件動畫結束時,還原到開始動畫前的狀態android:fillEnabled    與android:fillBefore 效果相同,都是在動畫結束時,將控件還原到初始化狀態android:repeatCount 重復次數android:repeatMode 重復類型,有reverse和restart兩個值,reverse表示倒序回放,restart表示重新放一遍,必須與repeatCount一起使用才能看到效果。因為這里的意義是重復的類型,即回放時的動作。android:interpolator  設定插值器,其實就是指定的動作效果,比如彈跳效果等,不在這小節中講解,后面會單獨列出一單講解。與scale標簽意義一樣,就不再綴述。

五、translate標簽 —— 平移

1、自身屬性

android:fromXDelta     起始點X軸坐標,可以是數值、百分數、百分數p 三種樣式,比如 50、50%、50%p,具體意義已在scale標簽中講述,這里就不再重講android:fromYDelta    起始點Y軸從標,可以是數值、百分數、百分數p 三種樣式;android:toXDelta         結束點X軸坐標android:toYDelta        結束點Y軸坐標

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <translate xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXDelta=“0”       android:toXDelta=“-80”      android:fromYDelta=“0”      android:toYDelta=“-80”      android:duration=“2000”      android:fillBefore=“true”>  </translate>  
<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXDelta="0"     android:toXDelta="-80"    android:fromYDelta="0"    android:toYDelta="-80"    android:duration="2000"    android:fillBefore="true"></translate>

2、從Animation類繼承的屬性

android:duration        動畫持續時間,以毫秒為單位 android:fillAfter          如果設置為true,控件動畫結束時,將保持動畫最后時的狀態android:fillBefore       如果設置為true,控件動畫結束時,還原到開始動畫前的狀態android:fillEnabled    與android:fillBefore 效果相同,都是在動畫結束時,將控件還原到初始化狀態android:repeatCount 重復次數android:repeatMode 重復類型,有reverse和restart兩個值,reverse表示倒序回放,restart表示重新放一遍,必須與repeatCount一起使用才能看到效果。因為這里的意義是重復的類型,即回放時的動作。android:interpolator  設定插值器,其實就是指定的動作效果,比如彈跳效果等,不在這小節中講解,后面會單獨列出一單講解。與scale標簽意義一樣,就不再綴述。

六、set標簽——定義動作合集

前面我們講解了各個標簽動畫的意義及用法,但他們都是獨立對控件起作用,假設我現在想上面的textView控件做一個動畫——從小到大,旋轉出場,而且透明度也要從0變成1,即下面的這個效果,該怎么辦?

這就需要對指定的控件定義動作合集,Set標簽就可以將幾個不同的動作定義成一個組;

屬性:

set標簽自已是沒有屬性的,他的屬性都是從Animation繼承而來,但當它們用于Set標簽時,就會對Set標簽下的所有子控件都產生作用。

屬性有:(從Animation類繼承的屬性)

android:duration        動畫持續時間,以毫秒為單位 android:fillAfter          如果設置為true,控件動畫結束時,將保持動畫最后時的狀態android:fillBefore       如果設置為true,控件動畫結束時,還原到開始動畫前的狀態android:fillEnabled    與android:fillBefore 效果相同,都是在動畫結束時,將控件還原到初始化狀態android:repeatCount 重復次數android:repeatMode 重復類型,有reverse和restart兩個值,reverse表示倒序回放,restart表示重新放一遍,必須與repeatCount一起使用才能看到效果。因為這里的意義是重復的類型,即回放時的動作。android:interpolator  設定插值器,其實就是指定的動作效果,比如彈跳效果等,不在這小節中講解,后面會單獨列出一單講解。與scale標簽意義一樣,就不再綴述。

上面這個效果,所對應的XML代碼為:

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <set xmlns:android=“http://schemas.android.com/apk/res/android”      android:duration=“3000”      android:fillAfter=“true”>          <alpha       android:fromAlpha=“0.0”      android:toAlpha=“1.0”/>        <scale      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%”      android:pivotY=“50%”/>        <rotate      android:fromDegrees=“0”      android:toDegrees=“720”      android:pivotX=“50%”      android:pivotY=“50%”/>           </set>  
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="3000"    android:fillAfter="true">  <alpha     android:fromAlpha="0.0"    android:toAlpha="1.0"/>  <scale    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%"    android:pivotY="50%"/>  <rotate    android:fromDegrees="0"    android:toDegrees="720"    android:pivotX="50%"    android:pivotY="50%"/></set>

七、實例——如何將動畫XML文件應用于控件中

上面我僅僅是列出了每個標簽及其屬性的意義及應用之后的效果演示,但上面是如何將定義動畫的xml應用到textView控件中的卻遲遲沒說,這一小節,就以scale動畫為例,講述如何將定義好的scle動作添加到指定控件中。

先看最終效果圖:

1、新建工程、新建scale動畫文件(scaleanim.xml)

新建一個工程,并且在res文件夾下,新建一個anim文件夾,然后再新建一個scaleanim.xml文件,結構如圖所示:

scaleanim.xml的代碼為:(從TextView中心點,從0放大到1.4倍,反復一次,最后還原到初始化狀態)

[html] view plain copy print?在CODE上查看代碼片<?xml version=“1.0” encoding=“utf-8”?>  <scale xmlns:android=“http://schemas.android.com/apk/res/android”      android:fromXScale=“0.0”      android:toXScale=“1.4”      android:fromYScale=“0.0”      android:toYScale=“1.4”      android:pivotX=“50%”      android:pivotY=“50%”      android:duration=“700”       android:fillBefore=“true”      android:repeatCount=“1”      android:repeatMode=“restart”  />  
<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXScale="0.0"    android:toXScale="1.4"    android:fromYScale="0.0"    android:toYScale="1.4"    android:pivotX="50%"    android:pivotY="50%"    android:duration="700"     android:fillBefore="true"    android:repeatCount="1"    android:repeatMode="restart"/>

2、XML布局文件

[html] view plain copy print?在CODE上查看代碼片<LinearLayout 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:orientation=“vertical”      tools:context=“com.harvic.animation_demo.MainActivity” >        <Button android:id=“@+id/btn_animation”          android:layout_width=“match_parent”          android:layout_height=“wrap_content”          android:layout_margin=“10d
<LinearLayout 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:orientation="vertical"    tools:context="com.harvic.animation_demo.MainActivity" >    <Button android:id="@+id/btn_animation"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_margin="10dip"        android:text="scale animation"/>    <TextView        android:id="@+id/tv"        android:layout_width="100dip"        android:layout_height="200dip"        android:background="#ff00ff"         android:text="@string/hello_world"        android:layout_gravity="center_horizontal"/></LinearLayout>

3、java代碼

[java] view plain copy print?在CODE上查看代碼片public class MainActivity extends Activity {        Button scaleBtn ;      Animation scaleAnimation;            TextView tv;      @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);                    scaleAnimation = AnimationUtils.loadAnimation(this, R.anim.scaleanim);          scaleBtn = (Button)findViewById(R.id.btn_animation);          tv =(TextView)findViewById(R.id.tv);                    scaleBtn.setOnClickListener(new View.OnClickListener() {                            @Override              public void onClick(View v) {                  // TODO Auto-generated method stub                  tv.startAnimation(scaleAnimation);              }          });                }    }  
public class MainActivity extends Activity {    Button scaleBtn ;    Animation scaleAnimation;    TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        scaleAnimation = AnimationUtils.loadAnimation(this, R.anim.scaleanim);        scaleBtn = (Button)findViewById(R.id.btn_animation);        tv =(TextView)findViewById(R.id.tv);        scaleBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                tv.startAnimation(scaleAnimation);            }        });    }}(1)通過scaleAnimation = AnimationUtils.loadAnimation(this, R.anim.scaleanim);從XML文件中獲取動畫

(2)利用startAnimation將動畫傳遞給指定控件顯示。

至此,本文就結束了,下篇將講述有關插值器的相關屬性及意義。

下面就是源碼下載了,源碼中包含兩部分內容:

1、Harvic_animation_demo工程:是第七部分的實例源碼;

2、tryAlpha_xml工程:是前六節動作代碼的集合,包含了前六小節里的所有代碼及動畫定義。

源碼下載地址:http://download.csdn.net/detail/harvic880925/8032579

請大家尊重原創者版權,轉載請標明出處:http://blog.csdn.net/harvic880925/article/details/39996643 謝謝!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品天天狠天天看| 亚洲午夜av久久乱码| 欧美专区在线视频| 国产一区私人高清影院| zzjj国产精品一区二区| 国产精品视频专区| 久久久久一本一区二区青青蜜月| 午夜精品久久久久久99热| 国产精品91在线| 亚洲欧美国产日韩天堂区| 在线观看国产精品91| 日韩av电影国产| 国产亚洲日本欧美韩国| 91国自产精品中文字幕亚洲| 日韩一区二区三区在线播放| 日韩视频在线免费| 国产精品久久久久久久久久免费| 成人做爰www免费看视频网站| 亚洲一区二区三区毛片| 国产日产欧美a一级在线| 亚洲最大在线视频| 久久91亚洲人成电影网站| 欧美另类交人妖| 国产精品户外野外| 亚洲精品videossex少妇| 国产精品在线看| 国产视频亚洲精品| 亚洲国产一区自拍| 欧洲永久精品大片ww免费漫画| 欧美黑人性生活视频| 亚洲国产毛片完整版| 日韩一级裸体免费视频| 96国产粉嫩美女| 日韩成人xxxx| 性欧美在线看片a免费观看| 亚洲一区二区三区久久| 国产精品日韩电影| 欧美一级视频免费在线观看| 亚洲成人免费网站| 日韩免费在线视频| 日韩高清电影免费观看完整| 国产97在线观看| 国产精品91在线| 亚洲免费小视频| 影音先锋欧美在线资源| 欧美性xxxx极品hd满灌| 日韩有码在线视频| 久久精品中文字幕一区| 日韩av中文字幕在线播放| 日韩精品高清视频| 欧美专区在线观看| 欧美日韩第一视频| 日韩色av导航| 欧美成人午夜激情| 久久天天躁狠狠躁老女人| 91中文字幕在线| 欧美又大又粗又长| 国精产品一区一区三区有限在线| 欧洲精品久久久| 视频在线观看一区二区| 亚洲国产精品人人爽夜夜爽| 一区二区三区日韩在线| 精品久久久一区| 欧美美女操人视频| 亚洲欧美国产视频| 亚洲国产成人精品久久| 91国产美女在线观看| 国产综合视频在线观看| 日韩不卡中文字幕| 色狠狠av一区二区三区香蕉蜜桃| 久久天天躁夜夜躁狠狠躁2022| 久久久精品久久久久| 国产精品夜间视频香蕉| 亚洲视频国产视频| 在线亚洲男人天堂| 992tv成人免费视频| 国产精品久久综合av爱欲tv| 欧洲成人免费视频| 日日噜噜噜夜夜爽亚洲精品| 国产精品高潮呻吟视频| 色妞色视频一区二区三区四区| 精品中文字幕乱| 美女精品视频一区| 伊人久久大香线蕉av一区二区| 欧美乱人伦中文字幕在线| 国产精品视频自拍| 国产精品丝袜视频| 欧美日韩一区二区在线| 久久中国妇女中文字幕| 91欧美激情另类亚洲| 成人看片人aa| 久久久精品2019中文字幕神马| 大桥未久av一区二区三区| 亚洲男人天堂手机在线| 欧美视频在线免费看| 国产免费一区二区三区在线能观看| 国产精品日韩精品| 日韩美女视频免费在线观看| 国产大片精品免费永久看nba| 亚洲黄页视频免费观看| 国产一区二区三区中文| 欧洲永久精品大片ww免费漫画| 亚洲国产精品yw在线观看| 欧美巨大黑人极品精男| 亚洲欧美国产精品va在线观看| 亚洲欧美日韩在线一区| 国产一区二区精品丝袜| 国语自产精品视频在免费| 神马国产精品影院av| 伊人亚洲福利一区二区三区| 亚洲人精选亚洲人成在线| 欧美午夜激情视频| 欧美黑人狂野猛交老妇| 精品久久久久久久久久久久| 国模吧一区二区| 亚洲成人激情小说| 国产成人精品日本亚洲专区61| 欧美高清电影在线看| 97超级碰碰碰| 一个人www欧美| 亚洲国产精品99久久| 亚洲国产天堂久久综合网| 国产精品第100页| 在线色欧美三级视频| 亚洲人精选亚洲人成在线| 成人精品在线视频| 久久这里有精品视频| 国产欧美亚洲精品| 欧美激情亚洲自拍| 欧美xxxx做受欧美| 97精品欧美一区二区三区| 亚洲欧美在线播放| 91亚洲精品一区二区| 91色琪琪电影亚洲精品久久| 欧美日韩激情小视频| 欧美裸体男粗大视频在线观看| 亚洲四色影视在线观看| 亚洲a成v人在线观看| 日韩一区二区三区xxxx| 成人黄色av播放免费| 亚洲风情亚aⅴ在线发布| 精品呦交小u女在线| 国产欧美一区二区三区在线| 亚洲va男人天堂| 欧美高清第一页| 国内免费精品永久在线视频| 欧美在线观看www| 亚洲国产精品福利| 一本色道久久88亚洲综合88| 国产午夜精品一区理论片飘花| 精品亚洲国产成av人片传媒| 一区二区三区视频免费在线观看| 色综合视频网站| 国产日韩在线亚洲字幕中文| 欧美大人香蕉在线| 久久人人爽人人爽人人片av高清| 91精品视频免费| 久久久久免费视频| 久久亚洲春色中文字幕| 欧美激情精品久久久久久变态| 国产精品免费久久久久影院| 亚洲在线www| 国产精品九九九| 6080yy精品一区二区三区|