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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android 自定义 ListView 显示网络上 JSON 格式歌曲列表

發布時間:2023/12/2 Android 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 自定义 ListView 显示网络上 JSON 格式歌曲列表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文內容

  • 環境
  • 項目結構
  • 演示自定義 ListView 顯示網絡上 JSON 歌曲列表
  • 參考資料

本文最開始看的是一個國人翻譯的文章,沒有源代碼可下載,根據文中提供的代碼片段,自己新建的項目(比較可惡的是,沒有圖標圖片資源,只能自己亂搞),但程序不是很穩定,有時能顯示出列表中的縮略圖,有時顯示不出來,還在主線程訪問了網絡。但在文章評論中,作者給出英文原文鏈接,本來想這下沒事了吧,結果下載源代碼運行后,還是有問題~仔細看英文原文,原來他也是根據 Github 上一個項目搞的,只是添加了式樣,以及顯示完整的歌曲列表,包括歌曲名、歌手名、縮略圖、時長。

看來只能自己研究了,式樣用英文原文的,改變主要有兩個,一個是英文原文的網絡歌曲列表是 .xml 格式文件,本文采用 .json 格式;二是調整了網絡訪問。

環境


  • Windows 2008 R2 64 位
  • Eclipse ADT V22.6.2,Android 4.4.3
  • SAMSUNG GT-I9008L,Android OS 2.2.2

?

項目結構


圖 1 項目結構

?

演示自定義 ListView 顯示網絡上 JSON 歌曲列表


演示運行結果如下所示,本文只給出核心代碼。點擊此處下載,自己調試一下。

圖 2 主程序

自定義式樣

gradient_bg.xml、gradient_bg_hover.xml、list_selector.xml 以及 image_bg.xml,定義列表背景,選中和沒選中的式樣,以及縮略圖的背景。

main.xml 主頁面及其后臺

main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > ? <ListView android:id="@+id/mylist" android:layout_width="fill_parent" android:layout_height="wrap_content" android:divider="#b5b5b5" android:dividerHeight="1dp" android:listSelector="@drawable/list_selector" /> ? <Button android:id="@+id/btn_clear" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="清除緩存, 重新加載" /> ? </LinearLayout>

CustomizedListView.java

package com.example.androidhive; ? import org.json.JSONArray; ? import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.ListView; ? public class CustomizedListView extends Activity { String url = "http://files.cnblogs.com/liuning8023/Android_Music_Demo_json_array.xml"; ? ListView list; LazyAdapter adapter; /* Button btn; */ ? private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 0x123) { Request rq = new Request(); JSONArray jsonArr = rq.getJsonFromUrl(url); list = (ListView) findViewById(R.id.mylist); adapter = new LazyAdapter(CustomizedListView.this, this, jsonArr); list.setAdapter(adapter); ? /* * btn = (Button) findViewById(R.id.btn_clear); * btn.setOnClickListener(new OnClickListener() { * * @Override public void onClick(View arg0) { * adapter.imageLoader.clearCache(); * adapter.notifyDataSetChanged(); } }); */ } super.handleMessage(msg); } }; ? @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ? new Thread(new Runnable() { @Override public void run() { Message msg = new Message(); msg.what = 0x123; handler.sendMessage(msg); } }).start(); ? } ? }

list_row.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/list_selector" android:orientation="horizontal" android:padding="5dip" > ? <!-- ListRow Left sied Thumbnail image --> <LinearLayout android:id="@+id/thumbnail" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:layout_alignParentLeft="true" android:background="@drawable/image_bg" android:layout_marginRight="5dip"> <ImageView android:id="@+id/list_image" android:layout_width="50dip" android:layout_height="50dip" android:src="@drawable/rihanna"/> </LinearLayout> <!-- Title Of Song--> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/thumbnail" android:layout_toRightOf="@+id/thumbnail" android:text="Rihanna Love the way lie" android:textColor="#040404" android:typeface="sans" android:textSize="15dip" android:textStyle="bold"/> ? <!-- Artist Name --> <TextView android:id="@+id/artist" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/title" android:textColor="#343434" android:textSize="10dip" android:layout_marginTop="1dip" android:layout_toRightOf="@+id/thumbnail" android:text="Just gona stand there and ..." /> ? <!-- Rightend Duration --> <TextView android:id="@+id/duration" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignTop="@id/title" android:gravity="right" android:text="5:45" android:layout_marginRight="5dip" android:textSize="10dip" android:textColor="#10bcc9" android:textStyle="bold"/> <!-- Rightend Arrow --> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/arrow" android:layout_alignParentRight="true" android:layout_centerVertical="true"/> ? </RelativeLayout>

LazyAdapter.java

package com.example.androidhive; ? import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; ? import android.app.Activity; import android.content.Context; import android.os.Handler; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; ? public class LazyAdapter extends BaseAdapter { ? private Activity activity; private JSONArray data; private static LayoutInflater inflater = null; public ImageLoader imageLoader; ? public LazyAdapter(Activity a, Handler handler, JSONArray jsonArr) { activity = a; data = jsonArr; inflater = (LayoutInflater) activity .getSystemService(Context.LAYOUT_INFLATER_SERVICE); imageLoader = new ImageLoader(activity.getApplicationContext()); } ? public int getCount() { return data == null ? 0 : data.length(); } ? public Object getItem(int position) { return position; } ? public long getItemId(int position) { return position; } ? public View getView(int position, View convertView, ViewGroup parent) { View vi = convertView; if (convertView == null) vi = inflater.inflate(R.layout.list_row, null); ? JSONObject song = null; ? ImageView image = (ImageView) vi.findViewById(R.id.list_image); TextView tvartist = (TextView) vi.findViewById(R.id.artist); TextView tvtitle = (TextView) vi.findViewById(R.id.title); TextView tvduration = (TextView) vi.findViewById(R.id.duration); ? try { song = data.getJSONObject(position); imageLoader.DisplayImage(song.getString("thumb_url"), image); tvartist.setText(song.getString("artist")); tvtitle.setText(song.getString("title")); tvduration.setText(song.getString("duration")); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } ? return vi; } }

其他工具類

FileCache.java 在外存緩存圖片

package com.example.androidhive; ? import java.io.File; import android.content.Context; ? public class FileCache { ? private File cacheDir; ? public FileCache(Context context) { // Find the dir to save cached images if (android.os.Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED)) cacheDir = new File( android.os.Environment.getExternalStorageDirectory(), "LazyList"); else cacheDir = context.getCacheDir(); if (!cacheDir.exists()) cacheDir.mkdirs(); } ? public File getFile(String url) { // I identify images by hashcode. Not a perfect solution, good for the // demo. String filename = String.valueOf(url.hashCode()); // Another possible solution (thanks to grantland) // String filename = URLEncoder.encode(url); File f = new File(cacheDir, filename); return f; ? } ? public void clear() { File[] files = cacheDir.listFiles(); if (files == null) return; for (File f : files) f.delete(); } ? }

MemoryCache.java 在內存緩存圖片

package com.example.androidhive; ? import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; import android.graphics.Bitmap; import android.util.Log; ? public class MemoryCache { ? private static final String TAG = "MemoryCache"; private Map<String, Bitmap> cache=Collections.synchronizedMap( new LinkedHashMap<String, Bitmap>(10,1.5f,true));//Last argument true for LRU ordering private long size=0;//current allocated size private long limit=1000000;//max memory in bytes ? public MemoryCache(){ //use 25% of available heap size setLimit(Runtime.getRuntime().maxMemory()/4); } public void setLimit(long new_limit){ limit=new_limit; Log.i(TAG, "MemoryCache will use up to "+limit/1024./1024.+"MB"); } ? public Bitmap get(String id){ try{ if(!cache.containsKey(id)) return null; //NullPointerException sometimes happen here http://code.google.com/p/osmdroid/issues/detail?id=78 return cache.get(id); }catch(NullPointerException ex){ ex.printStackTrace(); return null; } } ? public void put(String id, Bitmap bitmap){ try{ if(cache.containsKey(id)) size-=getSizeInBytes(cache.get(id)); cache.put(id, bitmap); size+=getSizeInBytes(bitmap); checkSize(); }catch(Throwable th){ th.printStackTrace(); } } private void checkSize() { Log.i(TAG, "cache size="+size+" length="+cache.size()); if(size>limit){ Iterator<Entry<String, Bitmap>> iter=cache.entrySet().iterator();//least recently accessed item will be the first one iterated while(iter.hasNext()){ Entry<String, Bitmap> entry=iter.next(); size-=getSizeInBytes(entry.getValue()); iter.remove(); if(size<=limit) break; } Log.i(TAG, "Clean cache. New size "+cache.size()); } } ? public void clear() { try{ //NullPointerException sometimes happen here http://code.google.com/p/osmdroid/issues/detail?id=78 cache.clear(); size=0; }catch(NullPointerException ex){ ex.printStackTrace(); } } ? long getSizeInBytes(Bitmap bitmap) { if(bitmap==null) return 0; return bitmap.getRowBytes() * bitmap.getHeight(); } }

ImageLoader.java 加載圖片并緩存

package com.example.androidhive; ? import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.Collections; import java.util.Map; import java.util.WeakHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; ? import android.os.Handler; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.widget.ImageView; ? public class ImageLoader { ? MemoryCache memoryCache = new MemoryCache(); FileCache fileCache; private Map<ImageView, String> imageViews = Collections .synchronizedMap(new WeakHashMap<ImageView, String>()); ExecutorService executorService; Handler handler = new Handler();// handler to display images in UI thread ? public ImageLoader(Context context) { fileCache = new FileCache(context); executorService = Executors.newFixedThreadPool(5); } ? final int stub_id = R.drawable.stub; ? /* * 顯示圖片 若緩存存在,則顯示,否則獲取 */ public void DisplayImage(String url, ImageView imageView) { imageViews.put(imageView, url); Bitmap bitmap = memoryCache.get(url); // 根據 url 從內存獲得圖片 if (bitmap != null) imageView.setImageBitmap(bitmap); else { queuePhoto(url, imageView); imageView.setImageResource(stub_id); } } ? private void queuePhoto(String url, ImageView imageView) { PhotoToLoad p = new PhotoToLoad(url, imageView); executorService.submit(new PhotosLoader(p)); } ? private Bitmap getBitmap(String url) { File f = fileCache.getFile(url); ? // from SD cache Bitmap b = decodeFile(f); if (b != null) return b; ? // from web try { Bitmap bitmap = null; URL imageUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection) imageUrl .openConnection(); ? conn.setRequestMethod("GET"); // Sets the flag indicating whether this URLConnection allows input. // conn.setDoInput(true); conn.setConnectTimeout(3000); conn.setReadTimeout(3000); // Flag to define whether the protocol will automatically follow // redirects or not. conn.setInstanceFollowRedirects(true); int response_code = conn.getResponseCode(); if (response_code == 200) { InputStream is = conn.getInputStream(); OutputStream os = new FileOutputStream(f); StreamUtils.CopyStream(is, os); os.close(); conn.disconnect(); bitmap = decodeFile(f); return bitmap; } else { conn.disconnect(); return null; } ? } catch (Throwable ex) { ex.printStackTrace(); if (ex instanceof OutOfMemoryError) memoryCache.clear(); return null; } } ? // decodes image and scales it to reduce memory consumption private Bitmap decodeFile(File f) { try { // decode image size BitmapFactory.Options o = new BitmapFactory.Options(); o.inJustDecodeBounds = true; FileInputStream stream1 = new FileInputStream(f); BitmapFactory.decodeStream(stream1, null, o); stream1.close(); ? // Find the correct scale value. It should be the power of 2. final int REQUIRED_SIZE = 70; int width_tmp = o.outWidth, height_tmp = o.outHeight; int scale = 1; while (true) { if (width_tmp / 2 < REQUIRED_SIZE || height_tmp / 2 < REQUIRED_SIZE) break; width_tmp /= 2; height_tmp /= 2; scale *= 2; } ? // decode with inSampleSize BitmapFactory.Options o2 = new BitmapFactory.Options(); o2.inSampleSize = scale; FileInputStream stream2 = new FileInputStream(f); Bitmap bitmap = BitmapFactory.decodeStream(stream2, null, o2); stream2.close(); return bitmap; } catch (FileNotFoundException e) { } catch (IOException e) { e.printStackTrace(); } return null; } ? // Task for the queue private class PhotoToLoad { public String url; public ImageView imageView; ? public PhotoToLoad(String u, ImageView i) { url = u; imageView = i; } } ? class PhotosLoader implements Runnable { PhotoToLoad photoToLoad; ? PhotosLoader(PhotoToLoad photoToLoad) { this.photoToLoad = photoToLoad; } ? @Override public void run() { try { if (imageViewReused(photoToLoad)) return; Bitmap bmp = getBitmap(photoToLoad.url); memoryCache.put(photoToLoad.url, bmp); if (imageViewReused(photoToLoad)) return; BitmapDisplayer bd = new BitmapDisplayer(bmp, photoToLoad); handler.post(bd); } catch (Throwable th) { th.printStackTrace(); } } } ? boolean imageViewReused(PhotoToLoad photoToLoad) { String tag = imageViews.get(photoToLoad.imageView); if (tag == null || !tag.equals(photoToLoad.url)) return true; return false; } ? // Used to display bitmap in the UI thread class BitmapDisplayer implements Runnable { Bitmap bitmap; PhotoToLoad photoToLoad; ? public BitmapDisplayer(Bitmap b, PhotoToLoad p) { bitmap = b; photoToLoad = p; } ? public void run() { if (imageViewReused(photoToLoad)) return; if (bitmap != null) photoToLoad.imageView.setImageBitmap(bitmap); else photoToLoad.imageView.setImageResource(stub_id); } } ? public void clearCache() { memoryCache.clear(); fileCache.clear(); } ? }

Request.java 訪問網絡

package com.example.androidhive; ? import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; ? import org.json.JSONArray; import org.json.JSONException; ? public class Request { ? public Request() { } ? public JSONArray getJsonFromUrl(String urlStr) { ? try { URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); // Sets the flag indicating whether this URLConnection allows input. // conn.setDoInput(true); conn.setConnectTimeout(3000); conn.setReadTimeout(3000); // Flag to define whether the protocol will automatically follow // redirects or not. conn.setInstanceFollowRedirects(true); ? int response_code = conn.getResponseCode(); if (response_code == 200) { InputStream in = conn.getInputStream(); InputStreamReader inputReader = new InputStreamReader(in); BufferedReader buffReader = new BufferedReader(inputReader); ? String line = "", JsonStr = ""; while ((line = buffReader.readLine()) != null) { JsonStr += line; } JSONArray jsonArray = new JSONArray(JsonStr); return jsonArray; } else { conn.disconnect(); return null; } ? } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }

StreamUtils.java 緩存時的I/O操作

package com.example.androidhive; ? import java.io.InputStream; import java.io.OutputStream; ? public class StreamUtils { public static void CopyStream(InputStream is, OutputStream os) { final int buffer_size=1024; try { byte[] bytes=new byte[buffer_size]; for(;;) { int count=is.read(bytes, 0, buffer_size); if(count==-1) break; os.write(bytes, 0, count); } } catch(Exception ex){} } }

?

參考資料

  • Github LazyList
  • androidhive android-custom-listview-with-imgae-and-text
  • androidhive android android-custom-listview-with-image-and-text 譯文

這三個鏈接的關系是,第二個鏈接的演示是根據第一個鏈接完成的,第三個鏈接翻譯的第二個鏈接。但遺憾的是,英文原文是有bug的,程序運行不穩定。

  • Android ListView 和 ***Adapter 從本地/網絡獲取歌曲列表
  • Android LazyList 從網絡獲取圖片并緩存

?

下載 Demo

轉載于:https://www.cnblogs.com/liuning8023/p/3829914.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Android 自定义 ListView 显示网络上 JSON 格式歌曲列表的全部內容,希望文章能夠幫你解決所遇到的問題。

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

久久中国精品 | 视频在线91 | 精品久久久久一区二区国产 | 六月丁香伊人 | 97色婷婷人人爽人人 | 国产精品大片免费观看 | av中文字幕在线免费观看 | 成人在线观看资源 | 激情婷婷久久 | 国产一性一爱一乱一交 | 国产福利91精品 | 在线观看日韩 | 黄色免费网站 | 亚洲欧美日韩在线看 | 91免费在线播放 | 4438全国亚洲精品在线观看视频 | 91伊人久久大香线蕉蜜芽人口 | 久久精品国产精品亚洲精品 | 亚洲视频 中文字幕 | 国产v亚洲v | 国产在线观看你懂得 | 久久精品爱爱视频 | 精品久久国产精品 | 高清av在线 | 中文字幕在线观看91 | 欧美极度另类 | 国产精品毛片一区 | 日韩综合精品 | 欧美性生活一级片 | 99r精品视频在线观看 | 精品国产一区二区三区久久久蜜月 | 日本爱爱片 | 久草在线最新视频 | 中文字幕乱在线伦视频中文字幕乱码在线 | 国产精品久久一区二区三区不卡 | 婷婷五月情 | 一区二区三区日韩视频在线观看 | 91久久奴性调教 | 国产一区视频在线观看免费 | 97精品国自产拍在线观看 | 三级a视频 | 99精品免费久久久久久日本 | 最近中文字幕免费av | 久久五月情影视 | 91精品国产综合久久福利 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 在线观看激情av | 精品久久网 | 欧美午夜剧场 | 久久久福利| 日韩中文在线字幕 | 少妇精品久久久一区二区免费 | 国产精品久久久久久一区二区三区 | 99久久99久国产黄毛片 | 欧美一区二区伦理片 | 超碰在线色 | 97超碰超碰久久福利超碰 | 波多野结衣精品在线 | 日韩精品电影在线播放 | 18pao国产成视频永久免费 | 国产 在线 日韩 | 操操操操网 | a久久久久 | 天天色天天综合网 | 亚洲aaa毛片 | 欧美日韩成人 | 精品国产伦一区二区三区观看说明 | 中文字幕在线观看你懂的 | 天堂va在线高清一区 | 国产一区二区三区午夜 | 五月婷影院 | 色www.| 亚洲成av人片在线观看无 | 久久久久国产精品一区 | 精品国产色 | 色丁香综合 | 最新国产中文字幕 | 久久只精品99品免费久23小说 | 久久精品激情 | 九精品 | 精品影院一区二区久久久 | av免费网站 | 中国一级片视频 | 97超碰国产精品女人人人爽 | 欧美成a人片在线观看久 | 天天曰| 中文字幕在线影视资源 | 免费看国产精品 | 免费在线看成人av | 国产伦理精品一区二区 | 午夜视频在线观看欧美 | 国产精品久久久久久久久久久久午夜片 | 日日天天av | 一本一本久久a久久精品综合 | 韩日精品在线 | av一级二级 | www.com.黄| 国产精品理论片在线播放 | 日韩欧美电影 | 久保带人 | 欧美综合色在线图区 | 狠狠色丁香婷婷综合 | 婷婷视频在线观看 | 日韩在线免费视频观看 | 九九一级片 | 欧美va天堂va视频va在线 | 米奇狠狠狠888 | 91亚洲影院 | 久久99精品国产91久久来源 | 中文字幕在线视频一区 | 激情图片久久 | 久久天天躁狠狠躁夜夜不卡公司 | 亚洲综合色视频在线观看 | 免费看的黄色小视频 | 91麻豆精品国产91久久久久久久久 | 久久精品国亚洲 | 99产精品成人啪免费网站 | 久久tv| 日韩欧美v | 天天色视频 | 99一级片| 日操干| 曰本三级在线 | 精品久久一区二区三区 | 亚洲成人精品影院 | 六月丁香激情综合色啪小说 | 日本精品视频一区 | 色av男人的天堂免费在线 | 欧美精品成人在线 | 久久精久久精 | 在线看成人片 | 色综合久久中文字幕综合网 | 亚洲精品婷婷 | 国产精品一区二区久久久 | 超碰av在线| 少妇bbw搡bbbb搡bbb | a在线视频v视频 | 亚洲人在线7777777精品 | 超碰97人人在线 | 91久久久久久久一区二区 | 国产成人精品综合久久久久99 | 久久精品久久精品久久 | 久久综合九色99 | 中文伊人| 成人a大片 | 九热在线| 香蕉免费 | 久久亚洲人| 久久亚洲精品电影 | 91精品免费在线观看 | 日韩精品久久一区二区三区 | 免费日韩一区 | 精品一区二区亚洲 | 国产成人精品亚洲精品 | 欧美影片| 午夜少妇av| 日韩在观看线 | 色在线网| 色老板在线视频 | 一区二区电影网 | 欧美日本国产在线观看 | 日日操夜夜操狠狠操 | 国产精品亚洲片在线播放 | 国产精品九色 | 亚洲国产精品视频在线观看 | 免费视频区 | 午夜精品久久久久久久99水蜜桃 | 亚洲视屏在线播放 | 国产69熟 | 成人在线观看日韩 | 成人性生爱a∨ | 在线激情网| 国产v亚洲v| 亚洲精品自拍视频在线观看 | 日韩免费看的电影 | 五月天开心 | 国产18精品乱码免费看 | 免费看一级片 | 欧美精品久久久久久久久久丰满 | 91精品国产麻豆国产自产影视 | 日本最新一区二区三区 | 男女视频久久久 | 免费av影视 | 色综合久久精品 | 国产精品久久久久久久久大全 | a天堂在线看 | 在线视频国产区 | 五月婷婷六月综合 | 日韩视频一区二区三区在线播放免费观看 | 国产手机视频在线播放 | 久久久国产精品网站 | 色婷婷亚洲综合 | 91九色国产在线 | 欧美,日韩 | 在线免费观看黄色 | 伊人网站 | 免费av福利| 天天爽夜夜爽精品视频婷婷 | 天天干天天操人体 | 国产又粗又猛又色又黄网站 | 亚洲理论片在线观看 | 欧美日韩中文视频 | 丝袜美腿一区 | 国产精品久久久久aaaa九色 | 91激情小视频 | 国产精品久久久久久婷婷天堂 | 国产中文字幕av | 超碰在线最新网址 | 天天色成人| 亚洲视频久久久 | 久久久久久久久久久影院 | 成年人在线观看视频免费 | 丁香在线视频 | 九九热免费在线观看 | 伊人久久电影网 | av福利电影 | 亚洲精品高清一区二区三区四区 | 国产一区不卡在线 | 精品国产伦一区二区三区观看说明 | 午夜免费电影院 | 99视频在线精品免费观看2 | 97视频网址 | 九九九九九国产 | 日韩在线视频网站 | 色综合天天综合在线视频 | 99国产一区二区三精品乱码 | 婷婷六月天天 | 国产精品网站一区二区三区 | 久久精品79国产精品 | 久久国产精品一国产精品 | 成人午夜黄色影院 | 综合激情网... | 欧美高清成人 | 国产精品一区二区免费 | av在线色 | 午夜av在线电影 | 中文在线字幕观看电影 | 国产激情免费 | 免费久久精品视频 | 久久综合五月婷婷 | 久久免费精品 | 精品夜夜嗨av一区二区三区 | 久久国产品 | 国产裸体永久免费视频网站 | 亚洲狠狠操 | 天天操操操操操 | 国产高清在线免费视频 | 欧美午夜剧场 | 欧美成年性| 中文字幕高清在线 | 69国产盗摄一区二区三区五区 | 美女免费视频黄 | 天天拍天天操 | 91在线蜜桃臀 | 国产区精品在线 | 国产精品久久久久久久久费观看 | 亚洲 精品在线视频 | 国产精品丝袜在线 | 成人av资源站 | 成在线播放 | 在线播放亚洲激情 | 美女黄频在线观看 | 色综合天天视频在线观看 | av超碰在线观看 | 亚洲永久精品在线观看 | 在线国产能看的 | 黄色大片免费网站 | 久久99精品国产99久久 | 国产一级二级在线播放 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久网站最新地址 | 国产亚洲免费观看 | 国产精品18久久久久久vr | 精品国产一区二区三区在线 | 亚洲欧洲美洲av | 欧美精品国产综合久久 | 国产福利中文字幕 | 在线 高清 中文字幕 | 国产视频精品久久 | 亚洲欧洲国产视频 | 激情欧美在线观看 | 国产精品免费久久久久影院仙踪林 | 日韩电影中文,亚洲精品乱码 | 国产日韩欧美在线播放 | 香蕉久久久久久av成人 | 在线观看成人一级片 | 伊人天天狠天天添日日拍 | 免费黄色网址大全 | 成人国产精品 | 亚洲精品男女 | 日日操天天爽 | 国产精品wwwwww | 久久国产视频网站 | 欧美一级片在线观看视频 | 超碰97av在线 | 久久精品免视看 | 狠狠狠狠干 | 伊人天天干 | 国产精品一区二区果冻传媒 | 国产精品毛片久久久久久 | 欧美日韩久久不卡 | 久久精品男人的天堂 | 欧美日本一区 | 欧美影片| 又黄又爽的免费高潮视频 | 激情文学综合丁香 | 97福利在线| 97超级碰碰 | 亚洲资源在线网 | 99在线视频播放 | 中文字幕一区二区三区乱码不卡 | 午夜av免费观看 | 91精选在线观看 | 色吊丝在线永久观看最新版本 | 天天操天天操天天操天天操天天操天天操 | 国产一区二区免费看 | 黄色小网站免费看 | 国产精品欧美久久 | 亚洲乱码国产乱码精品天美传媒 | a在线观看视频 | 国产成人一区二区三区影院在线 | 婷婷新五月 | 丁香激情五月婷婷 | 国产成人精品一区二区三区在线观看 | 久久久亚洲成人 | 天天爽夜夜爽人人爽一区二区 | 日韩va欧美va亚洲va久久 | 一级片免费观看 | 亚州精品天堂中文字幕 | 国产精品久久影院 | 久久免费美女视频 | 中国一区二区视频 | 天天玩天天干 | 肉色欧美久久久久久久免费看 | 国产精品国产亚洲精品看不卡 | 在线观看视频你懂 | 2021国产精品视频 | 国产亚洲va综合人人澡精品 | 麻豆国产在线视频 | 欧美性久久久久久 | 中文字幕免费一区 | 国产第一页精品 | 精品人人人人 | 久九视频 | 亚洲伊人网在线观看 | 国产69精品久久99的直播节目 | av在线电影网站 | 国产在线a视频 | 一区二区三区四区精品 | 成人影片免费 | 亚洲精品一区二区三区四区高清 | 日韩理论片在线 | 日韩特黄一级欧美毛片特黄 | 日韩免费播放 | 亚洲欧洲xxxx| 亚洲影视九九影院在线观看 | 欧美日韩高清免费 | 黄色大片日本 | 日韩精品中文字幕一区二区 | 中文字幕在线久一本久 | 免费观看黄 | 免费看国产一级片 | 成人免费电影 | 婷婷色在线| 精品亚洲成人 | 久久这里只精品 | www日| 亚洲乱码一区 | 久草电影免费在线观看 | 久久99精品国产麻豆宅宅 | 日本中文字幕在线播放 | 国产精品专区在线观看 | 天天亚洲 | 成人精品一区二区三区中文字幕 | 国产精品久久久久久久久岛 | 免费成人在线观看视频 | 亚洲国产高清在线观看视频 | 欧美乱码精品一区 | 久久99亚洲精品久久 | 成人午夜剧场在线观看 | 日本乱码在线 | 久草在线精品观看 | 狠狠干成人综合网 | 免费福利片2019潦草影视午夜 | 9色在线视频| 久久私人影院 | 亚洲aⅴ在线观看 | 91在线影院 | 色婷婷国产精品一区在线观看 | 国产香蕉久久 | 麻豆精品视频在线 | 超碰人人草 | 麻豆国产精品va在线观看不卡 | 在线看国产精品 | 午夜精品成人一区二区三区 | 日本在线成人 | www.黄色片网站 | 日韩免费观看高清 | 婷婷久久精品 | 免费黄色av | 国产精品久久电影网 | 一级黄色片在线 | 久久99婷婷 | 天天干,天天射,天天操,天天摸 | 成人高清av在线 | 777奇米四色 | 色综合久久久网 | 久久久久亚洲最大xxxx | 国产在线日本 | 国产爽妇网 | 久精品视频免费观看2 | 久二影院 | 美女视频网 | 国产黄色视| 久久激情日本aⅴ | 91成人网在线 | 在线超碰av| 久久久久久久99 | 色噜噜狠狠色综合中国 | 91在线永久| 日韩不卡高清 | 中文字幕免费一区二区 | 成人精品99| 最新日韩中文字幕 | 久久婷婷网 | 国产精品久久久久久久免费观看 | 欧美不卡视频在线 | 国内99视频 | 96在线| 国产在线欧美在线 | 亚洲精品在线二区 | 91av在线视频免费观看 | 久久精品国亚洲 | 亚洲一区精品二人人爽久久 | 成人性生爱a∨ | 97超碰免费在线观看 | 中文字幕综合在线 | 亚洲色视频 | 午夜美女av | av成人在线看 | 久久艹在线 | av中文字幕网 | 国产一区二区中文字幕 | 日韩在线视频观看 | 99中文字幕视频 | 在线观看色网 | 精品久久久久国产免费第一页 | 欧美在线91| 国产精品久久久久久久免费观看 | 国产一区在线观看免费 | 亚洲精选国产 | 国产精品女同一区二区三区久久夜 | 91成人在线免费观看 | 欧美激情第八页 | 欧洲激情在线 | 久久成人毛片 | 91精品一区二区三区久久久久久 | 91看成人| 免费视频成人 | 在线观看中文字幕一区二区 | 波多野结衣精品 | 综合久久五月天 | 亚洲免费av一区二区 | 中文资源在线观看 | 国产成人久久精品一区二区三区 | 久久精品一区二区三 | 全黄色一级片 | 国产这里只有精品 | 欧美一区二区精美视频 | 狠狠色伊人亚洲综合成人 | 99久久久成人国产精品 | 在线观看日本高清mv视频 | 国产福利精品一区二区 | 欧美特一级 | 国产精品福利午夜在线观看 | 激情欧美一区二区三区免费看 | 国产成人精品网站 | 99精品视频在线免费观看 | 国产高清视频在线播放 | 国产亚洲精品久久 | 精品国产成人在线影院 | 日韩欧美一区二区三区在线 | 日韩黄色一区 | 日韩精品专区 | 91九色蝌蚪 | a在线免费 | 国产精品99视频 | 丁香六月在线观看 | 999ZYZ玖玖资源站永久 | 99电影 | 日韩动态视频 | 国产综合福利在线 | 久久综合激情 | 黄色三级av | 色偷偷88欧美精品久久久 | 亚洲激情影院 | aaawww| 国产亚洲精品无 | 黄色av电影在线观看 | 欧美在线视频精品 | 国产视频在线播放 | 天天鲁一鲁摸一摸爽一爽 | 五月婷婷综合激情网 | 亚洲人毛片 | 国产91精品欧美 | 久久久成人精品 | 日韩高清不卡一区二区三区 | 午夜男人影院 | 97香蕉超级碰碰久久免费软件 | 在线视频观看你懂的 | 免费日韩一区二区三区 | 91麻豆精品国产91久久久久久久久 | 九九欧美视频 | 日韩免费看的电影 | 免费三级影片 | av在线免费网 | 精品久久久99| 色婷在线 | 黄色录像av| 亚洲国产美女精品久久久久∴ | 91在线看 | 色多视频在线观看 | 日韩专区中文字幕 | 日韩va在线观看 | 亚洲高清91| 久草在线手机观看 | 国产精品爽爽久久久久久蜜臀 | 99在线视频观看 | 最新av在线免费观看 | 免费麻豆网站 | 成人黄色小说网 | 久久高清视频免费 | 精品黄色片 | 久久99国产精品免费网站 | 久久精品久久国产 | 国产精成人品免费观看 | 成人av教育 | 成人在线免费小视频 | 九九免费在线观看视频 | 精品在线观 | 色综合天天狠天天透天天伊人 | 国产中文字幕在线免费观看 | 国产在线超碰 | 91麻豆免费视频 | 99成人精品| 欧美一级久久久久 | 亚洲涩涩涩涩涩涩 | 奇米影视8888在线观看大全免费 | 日本少妇久久久 | av中文字幕亚洲 | 蜜桃视频日本 | 国产视频2| 国产尤物在线观看 | 亚洲aⅴ乱码精品成人区 | 久久久久亚洲天堂 | 欧美极品一区二区三区 | 亚洲国产高清在线观看视频 | 国产香蕉视频在线播放 | 中文字幕av最新更新 | 91久久偷偷做嫩草影院 | 国产成人精品亚洲a | 中文字幕av在线免费 | 国产成人精品不卡 | 一区二区电影在线观看 | 国产韩国日本高清视频 | 一级片免费在线 | 麻豆视频一区 | 天天弄天天操 | 在线观看国产91 | 波多野结衣网址 | 久产久精国产品 | 91九色视频观看 | 午夜三级在线 | 国产精品久免费的黄网站 | 粉嫩av一区二区三区四区在线观看 | 日本视频高清 | 欧美午夜性生活 | 国产麻豆视频网站 | 9在线观看免费高清完整版在线观看明 | 天天搞天天干 | 人人玩人人添人人澡超碰 | 九月婷婷人人澡人人添人人爽 | 久久久69 | 伊人手机在线 | 欧美日韩中文另类 | 精品字幕在线 | 日日爽天天 | 成人av网站在线播放 | 国产资源免费在线观看 | 色天天中文| 欧美日高清视频 | 欧美精品久久久久久久免费 | 欧美一区二区三区在线看 | 黄色在线观看污 | 欧美激情综合色 | 在线中文字幕电影 | 国产精品三级视频 | 日韩网站在线 | 日本三级久久 | 久久精品久久99 | 中文字幕高清视频 | 成人h动漫精品一区二 | 久久综合之合合综合久久 | 久久免费美女视频 | 国产精品久久精品 | 日日干干夜夜 | 久久国产精品区 | 亚洲一区 av | 欧美色噜噜噜 | 免费av一级电影 | 欧美吞精 | 亚洲资源一区 | 狠狠操狠狠 | 四虎5151久久欧美毛片 | 九九免费精品 | 久久久久亚洲国产精品 | 国产伦精品一区二区三区四区视频 | 国产美女在线精品免费观看 | 亚洲最大的av网站 | 中文理论片 | 美女网站在线观看 | 国产精品99蜜臀久久不卡二区 | 中文字幕av一区二区三区四区 | 免费观看视频的网站 | 九九久久影院 | 久久久久中文字幕 | a久久免费视频 | 日韩精选在线 | 日韩av在线网站 | 91男人影院| 在线免费观看亚洲视频 | 99精品视频在线观看播放 | 黄色com | av在线专区 | 国产精品国产亚洲精品看不卡 | 99r精品视频在线观看 | 国产精品麻豆果冻传媒在线播放 | 久久另类视频 | 国产精品a级 | 日日草视频 | 久草视频在线免费看 | 天天艹天天爽 | 2021久久| 丁香婷婷激情 | 人人射av | 亚洲成人资源在线观看 | 国产一区免费在线 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 精品一区二区三区四区在线 | 国产韩国精品一区二区三区 | 中文字幕在线观看三区 | 波多野结衣在线观看一区二区三区 | 99久高清在线观看视频99精品热在线观看视频 | 亚洲国产精品久久久久婷婷884 | 欧美美女视频在线观看 | 亚洲成人资源网 | 久9在线 | 精品久久久999 | 国产小视频在线播放 | 麻豆高清免费国产一区 | 黄色天堂在线观看 | 日韩在线观看视频在线 | 日韩在线观看一区二区三区 | 国产视频精品久久 | 国产一区二区综合 | www.黄色小说.com | 日韩特级片 | 国产夫妻自拍av | 久久亚洲电影 | 久操操 | 亚洲 成人 一区 | 色视频网页 | 米奇影视7777| 国产精品久久久久久久久久 | 欧美久久电影 | 日韩欧美视频一区二区 | 婷婷免费视频 | 狠狠色丁香婷婷 | 亚洲精品福利视频 | 国产一区视频在线播放 | www.久久久.com | 亚洲成人在线免费 | 亚洲专区视频在线观看 | 欧美一级电影在线观看 | 欧美一级免费黄色片 | av高清不卡| 日韩夜夜爽 | 在线观看视频在线观看 | 婷婷综合电影 | 久久热首页 | 久久久久久久久爱 | 成人午夜剧场在线观看 | 成人毛片在线观看 | 韩国av电影在线观看 | 国产 欧美 日产久久 | 成人av在线影院 | 玖玖在线视频观看 | 18做爰免费视频网站 | 精品欧美一区二区在线观看 | 97成人精品视频在线播放 | 国产 欧美 日产久久 | 五月婷婷六月丁香 | 四虎成人精品永久免费av | 一级片在线 | 免费在线色| 日本三级久久久 | 久久久久免费观看 | 伊人五月婷 | 欧美成人精品欧美一级乱黄 | 6699私人影院 | 国产剧在线观看片 | 国产高清在线不卡 | 91伊人影院 | av资源免费观看 | 久久这里只有精品23 | 欧美伦理一区 | 91三级视频| 亚洲国产欧美在线看片xxoo | zzijzzij亚洲日本少妇熟睡 | 手机在线中文字幕 | 91久久国产露脸精品国产闺蜜 | 国产美女在线精品免费观看 | 成人a视频在线观看 | 久久99精品国产麻豆宅宅 | www视频免费在线观看 | 91久久爱热色涩涩 | 天天曰天天 | 日韩欧美99 | 最近中文字幕久久 | 国产精品手机在线 | 国产日产精品一区二区三区四区 | 久久手机免费视频 | 人人爽人人澡 | 日韩a欧美 | 国产资源在线免费观看 | 亚洲黄色影院 | 欧亚日韩精品一区二区在线 | 国产一二三四在线观看视频 | 国产精品9999 | 日韩激情片在线观看 | 国产视频在线免费观看 | 国产精品视频在线看 | 人人爽人人片 | 99免费在线视频 | 九九色网 | 国产一二三区在线观看 | 黄色大片免费播放 | 亚洲国产精品视频在线观看 | 韩日成人av| 欧美韩国在线 | 91久久国产自产拍夜夜嗨 | 一区二区三区国产精品 | 精品v亚洲v欧美v高清v | 狠狠干网址 | 色婷婷精品 | 国产麻豆视频在线观看 | 国产小视频你懂的 | 国产欧美综合视频 | 免费看日韩 | 亚洲一区久久 | 夜色在线资源 | 亚洲午夜av | 在线97| 国产不卡精品 | 在线观看免费国产小视频 | 国产日产精品一区二区三区四区 | 男女拍拍免费视频 | 四虎成人精品 | 在线国产一区二区三区 | 亚洲精品欧美精品 | 亚洲一二区精品 | 国产亚洲一区二区三区 | 亚洲精品视频www | 操一草 | 亚洲一区久久久 | 99精品偷拍视频一区二区三区 | 亚洲a色 | 午夜精品一区二区三区免费 | www蜜桃视频 | 日韩一区正在播放 | 免费观看日韩 | 在线亚洲午夜片av大片 | 热99在线视频 | 国产成人一区二区三区电影 | 精品亚洲免费 | 91久久偷偷做嫩草影院 | 成人久久久久久久久 | 国产精品日韩在线观看 | 91成人网在线观看 | 91自拍视频在线 | 婷婷天天色 | 国产精品视频999 | 亚洲理论电影网 | 综合久久婷婷 | 欧美日韩性视频在线 | 欧美综合久久久 | 激情视频久久 | 国产在线观看污片 | 天天色天天操天天爽 | 久久综合五月天婷婷伊人 | 91日韩在线 | 国产精品午夜8888 | 免费a视频在线 | 91精品啪在线观看国产 | 国产破处视频在线播放 | 在线观看日本高清mv视频 | 国产一区二区精品 | 麻豆精品在线视频 | 五月婷婷狠狠 | 97视频免费看 | 亚洲a免费 | 91黄色小网站 | 久久免费激情视频 | 精品美女国产在线 | 国产第一页在线播放 | 欧美韩日在线 | 五月天综合激情 | 色小说在线| 天天插狠狠插 | 日韩av一区二区三区 | 欧美日韩免费观看一区二区三区 | 免费视频97 | 特级西西444www高清大视频 | 日韩av中文在线观看 | 免费三级av | 午夜国产一区 | 久草在线网址 | 韩日电影在线 | 久久免费视频在线观看6 | 国产v在线播放 | 黄色毛片在线 | 人人爽人人香蕉 | 日韩色高清 | 在线观看免费日韩 | 日本成人黄色片 | www色,com | 99久久久久久国产精品 | av色综合 | 免费久久久久久久 | 亚洲精品免费在线视频 | 国内精品久久久久影院男同志 | 国产又粗又猛又黄又爽 | 在线观看国产日韩 | 337p日本欧洲亚洲大胆裸体艺术 | 欧美亚洲久久 | 久草国产在线观看 | 99精彩视频在线观看免费 | 国产美女在线免费观看 | 在线看一级片 | 中文在线中文资源 | av一级一片 | 欧美老人xxxx18 | 日韩免费一级a毛片在线播放一级 | 国产中年夫妇高潮精品视频 | 国产在线观看二区 | 日韩三级.com | 国产精品久久久久久久久久免费 | 伊人永久在线 | 美女一二三区 | 久一在线 | 久久婷婷色 | 91在线免费观看网站 | 精品国产一区二区三区免费 | 国产中文字幕一区二区三区 | 国产网站av | 最新中文在线视频 | 蜜臀av夜夜澡人人爽人人桃色 | 伊人久操| 天天操操操操操操 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 欧美精品久久久久久久免费 | 在线观看黄色免费视频 | 天天综合亚洲 | 婷婷激情网站 | 成人av高清 | 午夜丁香网 | av一级网站 | 欧美专区国产专区 | www.色午夜,com| 亚洲精品无 | www最近高清中文国语在线观看 | 久久人人精品 | 俺要去色综合狠狠 | 亚洲免费av片 | 中文字幕在线不卡国产视频 | 亚洲自拍自偷 | 99精品国产99久久久久久97 | 国产视频在线观看一区二区 | 一区二区三区免费 | 99精品在线免费观看 | 国产 亚洲 欧美 在线 | 免费手机黄色网址 | 欧美日韩在线观看一区二区三区 | 在线观影网站 | 国产精品乱码久久久 | 超碰人人在 | 免费网址你懂的 | 一本一本久久a久久精品综合小说 | 日韩激情中文字幕 | 久久久久久久久久久久久久免费看 | 久久久久久久久久久久久久电影 | 99精品视频在线观看免费 | av在线色| 成人资源在线 | 国产成年人av | 亚洲精品在线免费 | 啪嗒啪嗒免费观看完整版 | 欧美精品xxx | 欧美孕妇与黑人孕交 | 国产夫妻性生活自拍 | 精品96久久久久久中文字幕无 | 天天操天天操天天操天天 | 91桃色视频| 悠悠av资源片 | 4438全国亚洲精品观看视频 | 婷婷精品国产欧美精品亚洲人人爽 | 五月开心六月婷婷 | www在线观看国产 | 免费看片网址 | 欧美夫妻性生活电影 | 久久久久久久18 | 成人h在线播放 | 亚洲精品视频一二三 | 国产精品女人久久久久久 | 91精品成人久久 | 99精品视频在线免费观看 | 黄p网站在线观看 | 久久国产精品99久久久久久丝袜 | 中文字幕 国产 一区 | 91在线中文字幕 | 欧美日韩高清一区二区三区 | 午夜骚影| 日韩欧美一区二区在线播放 | 伊人五月婷 | 超碰在线日韩 | 久久再线视频 | 亚洲精品福利在线观看 | 日本丰满少妇免费一区 | 成人小视频在线观看免费 | 在线观看视频黄 | 97电院网手机版 | 成人性生交视频 | 久久精品视 | 黄色小说视频网站 | av动图 | 热久在线 | 国产精品门事件 | av在线亚洲天堂 | 国产又黄又爽无遮挡 | 看黄色91| 日韩中文字幕免费 | 国产一区二区三区免费视频 | 国产精品永久久久久久久久久 | 久久精品高清 | 国产亚洲视频在线 | 99久久精品免费看国产麻豆 | 中文国产在线观看 | 99热精品免费观看 | 色视频网站在线观看一=区 a视频免费在线观看 | 国产 中文 日韩 欧美 | 日韩视频1区 | 狠狠地日 | 97人人模人人爽人人少妇 | 免费色视频网址 | 亚洲精品久久久久中文字幕m男 | 日韩精品久久久久久久电影99爱 | 色国产精品一区在线观看 | 国产色区 | 中文在线8资源库 | 九九热在线精品 | 国产精品video爽爽爽爽 | 日本大片免费观看在线 | 超碰在线91 | 狠狠狠的干 | 西西www444| 一本大道久久精品懂色aⅴ 五月婷社区 | 99久久精品午夜一区二区小说 | 久久日韩精品 | 国产91精品一区二区麻豆网站 | 456免费视频 | 成年人黄色在线观看 | 在线观看www视频 | 丁香九月激情综合 | 夜夜操狠狠干 | 黄色a级片在线观看 | 成人欧美一区二区三区黑人麻豆 | 96av在线视频| 日韩精选在线观看 | 美女视频黄频 | 免费网站在线观看成人 | 精品 一区 在线 | www国产亚洲精品久久网站 | 国产精品理论在线观看 | 天天射一射| 麻豆视传媒官网免费观看 | 免费91麻豆精品国产自产在线观看 | 久久97久久 | 91免费观看 |