• <style id="gwrdi"><kbd id="gwrdi"></kbd></style>
      摸金校尉之九幽将军电影免费播放,女士邀请函电影,黑暗荣耀第二季第五集30分25秒,高清维珍朋克:发条女孩未删减,课外授业3在线,五福临门免费观看全集电视剧,告白动漫剧在线播放,金瓶梅迅雷下载地址
      Previous Next

      基于zxing的二維碼掃描

      添加時間:2019-08-31 15:58:18

      來源:

      瀏覽:

      現(xiàn)在的應(yīng)用中二維碼掃描已經(jīng)成為一個應(yīng)用必不可少的功能,現(xiàn)在大部分Android二維碼掃描都是基于zxing和Zbar,這文章就來介紹一下基于zxing的二維碼掃描。先看下效果圖

      效果圖


      雖然現(xiàn)在的關(guān)于二維碼的文章有很多,但是很多都是交我們怎么使用,在使用的時候我也遇到了很多問題,比如。UI界面太丑,沒有用的文件太多,掃描太慢,版本太老。本Demo使用的是3.x的是比較新的版本。我用的小米2A(api=19)親測在正常情況下掃描時間和QQ微信差不多,我的界面是類防QQ的也是比較美觀的。那么我們看看如何使用和文件的作用。


      zxing

      zxing官網(wǎng) 這是zxing官網(wǎng)。想了解更多的可以去官網(wǎng),里面有文檔不過在我看來。第三方庫的使用我們沒有必要完全了解,整體上我們了解所需要功能即可,這樣減少了學(xué)習(xí)時間。


      為什么選擇zxing

      • google的開源項目,高可定制性

      • 可以識別多種碼,不僅僅是二維碼

      • 不依賴第三方庫,使用起來簡單


      zxing的使用

      • zixng JAR 我們可以去官網(wǎng),如果是Android Studio的話也可以在線搜索zxing jar,導(dǎo)入完成后別忘了ADD library。

      • res文件

      res文件

      • drawable 文件中主要放的是一些我們顯示界面的圖片和一些點擊按鈕的background

      • layout activity_qrcode_capture_layout.xml是zxing掃描的主界面,另外兩個布局就是我們在開始圖片中看到的,一個頭部,一個腳部的布局

      • colors,dis,strings,styles,raw,xml 這些是zxing中一些類的資源文件和我們自定義布局的一些資源文件,不導(dǎo)入會報錯,raw是我們掃描完成后的音效,我們也可以根據(jù)需求改成自己的音效(但是要注意的是文件格式和名字盡量要相同,避免出錯和資源找不到),xml就是zxing用到的資源文件,我們直接復(fù)制過來就行。 PS:如果你是從官網(wǎng)拷貝,那么你自需要拷貝和我一樣的就行。我這里只是多了一些drawwable中的布局圖片和頭部腳部2個布局


      • 關(guān)鍵類

      關(guān)鍵類

      • app CaptureActivity 主要是我們的掃碼界面,在這里我們引入我們自己的頭部腳部布局,并給控件點擊事件,在這個類中我們重點看這幾個方法:


          /**
           * 閃光燈點擊事件
           */
          private OnClickListener click = new OnClickListener() {
      
              @Override        public void onClick(View v) {
                  int id = v.getId();
                  if (id == R.id.button_back) {//返回按鈕
                      finish();
                  } else if (id == R.id.flash_btn) {//打開關(guān)閉閃光燈
                      if (!isFlash) {
                          CameraManager.get().turnLightOn();
                      } else {
                          CameraManager.get().turnLightOff();
                      }
                      isFlash = !isFlash;
                  } else if (id == R.id.photo_btn) {//掃描二維碼圖片
                      // 打開手機中的相冊
                      Intent innerIntent = new Intent(Intent.ACTION_GET_CONTENT); // "android.intent.action.GET_CONTENT"
                      innerIntent.setType("image/*");
                      //封裝intent
                      Intent wrapperIntent = Intent.createChooser(innerIntent, "選擇二維碼圖片");
                      startActivityForResult(wrapperIntent, REQUEST_CODE);
                  } else if (id == R.id.qrcode_btn) {
                      // 跳轉(zhuǎn)到生成二維碼頁面
                      Bitmap b = createQRCode();
                      Intent intent = getIntent();
                      intent.putExtra("QR_CODE", b);
                      setResult(200, intent);
                      finish();
                  }
      
              }
          };

      所有掃碼界面的點擊事件都在這個Activity中,可以看到zxing給我做了比較好的封裝,只需要2行代碼我們就可以控制閃光燈的開關(guān)。掃描圖片二維碼的點擊事件也比較簡單我們自需要打開相冊。并用startActivityForResult啟動相冊。

       @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
              super.onActivityResult(requestCode, resultCode, data);
              if (resultCode == RESULT_OK) {//圖片選擇返回
                  uri = data.getData();//獲取圖片Uri
                  //啟動線程完成圖片掃碼
                  new Thread(new Runnable() {
                      @Override                public void run() {
      
                          Result result = scanningImage(uri);
                          if (result == null) {
                              Looper.prepare();
                              Toast.makeText(getApplicationContext(), "圖片格式有誤", Toast.LENGTH_SHORT).show();
                              Looper.loop();
                          } else {
                              // 數(shù)據(jù)返回,在這里去處理掃碼結(jié)果
                              String recode = (result.toString());
                              Intent data = new Intent();
                              data.putExtra("result", recode);
                              //返回啟動掃碼界面的Activity
                              setResult(300, data);
                              finish();
                          }
                      }
                  }).start();
              }
          }

      這個方法主要是處理上個方法打開相冊選取圖片后結(jié)果返回的處理。可以看到,我們拿到結(jié)果將掃碼掃碼界面finish()掉,并通過setResult()方法將數(shù)據(jù)交給跳轉(zhuǎn)我們的掃碼界面的活動去處理。 下面我們再來看下生成二維碼

      • 生成二維碼:可以看到生成二維碼主要是調(diào)用了createQRCode();這個方法,那我來看下這個方法:

      private Bitmap createQRCode() {
              int QR_WIDTH = 100;//生成二維碼的寬
              int QR_HEIGHT = 100;//生成二維碼的高
      
              try {
                  // 需要引入core包
                  QRCodeWriter writer = new QRCodeWriter();
                  String text = Util.getIMEI(this);
                  if (text == null || "".equals(text) || text.length() < 1) {
                      return null;
                  }
                  // 把輸入的文本轉(zhuǎn)為二維碼
                  BitMatrix martix = writer.encode(text, BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT);
      
                  System.out.println("w:" + martix.getWidth() + "h:" + martix.getHeight());
      
                  Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
                  hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
                  BitMatrix bitMatrix = new QRCodeWriter().encode(text, BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT, hints);
                  int[] pixels = new int[QR_WIDTH * QR_HEIGHT];
                  for (int y = 0; y < QR_HEIGHT; y++) {
                      for (int x = 0; x < QR_WIDTH; x++) {
                          if (bitMatrix.get(x, y)) {
                              pixels[y * QR_WIDTH + x] = 0xff000000;
                          } else {
                              pixels[y * QR_WIDTH + x] = 0xffffffff;
                          }
                      }
                  }
                  // 生成的二維碼
                  Bitmap bitmap = Bitmap.createBitmap(QR_WIDTH, QR_HEIGHT, Bitmap.Config.ARGB_8888);
                  bitmap.setPixels(pixels, 0, QR_WIDTH, 0, 0, QR_WIDTH, QR_HEIGHT);
      
                  return bitmap;
              } catch (WriterException e) {
                  e.printStackTrace();
              }
              return null;
          }

      它主要就是將一個文本生成了一個寬高為100*100的bitmap。那我們就把這個方法簡單就修改下,寬高由我們傳入。文本也是由我們自己來決定。因為生成二維碼并不依賴掃描的Activity,所以不管在那里我們只要調(diào)用createQRcode,就能生成二維碼。

      • camera 主要是一些相機的管理類,F(xiàn)lashlightManager閃光燈的管理類,CameraManager相機的管理類,比如剛才我們的開關(guān)閃光燈。

      • decode 這里面主要是解碼,因為解碼也是比較耗時的炒作,所以我們是放在線程中去執(zhí)行并通過handle來進行消息傳遞。這里重要的類是CaptureActivityHandler。處理的結(jié)果都是通過這個類傳給我們的Activity的。既然是handle,那么我們就來看下handleMessage()方法

       @Override    public void handleMessage(Message message) {
              if (message.what == R.id.auto_focus) {
                  // Log.d(TAG, "Got auto-focus message");
                  // When one auto focus pass finishes, start another. This is the
                  // closest thing to
                  // continuous AF. It does seem to hunt a bit, but I'm not sure what
                  // else to do.
                  if (state == State.PREVIEW) {
                      CameraManager.get().requestAutoFocus(this, R.id.auto_focus);
                  }
              } else if (message.what == R.id.restart_preview) {
                  Log.d(TAG, "Got restart preview message");
                  restartPreviewAndDecode();
              } else if (message.what == R.id.decode_succeeded) {
                  Log.d(TAG, "Got decode succeeded message");
                  state = State.SUCCESS;
                  Bundle bundle = message.getData();
                  Bitmap barcode = bundle == null ? null : (Bitmap) bundle.getParcelable(DecodeThread.BARCODE_BITMAP);
                  activity.handleDecode((Result) message.obj, barcode);
                  Result result = (Result) message.obj;
                  Intent mIntent = new Intent();
                  mIntent.putExtra("SCAN_RESULT", result.getText());
                  activity.setResult(Activity.RESULT_OK, mIntent);
                  activity.finish();
              } else if (message.what == R.id.decode_failed) {
                  // We're decoding as fast as possible, so when one decode fails,
                  // start another.
                  state = State.PREVIEW;
                  CameraManager.get().requestPreviewFrame(decodeThread.getHandler(), R.id.decode);
              } else if (message.what == R.id.return_scan_result) {
                  Log.d(TAG, "Got return scan result message");
                  activity.setResult(Activity.RESULT_OK, (Intent) message.obj);
                  activity.finish();
              } else if (message.what == R.id.launch_product_query) {
                  Log.d(TAG, "Got product query message");
                  String url = (String) message.obj;
                  Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
                  activity.startActivity(intent);
              }
          }

      可以看到處理的結(jié)果都在這里。有成功失敗和其他一些情況的處理,這里我們主要看成功時會返回resultCode=RESULT_OK,掃描的結(jié)果放在inent中key=SCAN_RESULT,這樣我們就可以根據(jù)intent攜帶的key和value去做們相應(yīng)的處理

      BeepManager是控制我們的消息音。

      BeepManager manager = new BeepManager(activity);//開啟提示音
                  manager.playBeepSoundAndVibrate();
      • encode,util,就是編碼和工具類,這里我們就不看了

      • view中我們重點來看下ViewfinderView。這個就是我們掃碼界面的主布局。他和我們自己添加的頭部和腳部不同,它不是通過引入布局,而是自定義view畫上去的。既然是畫上去的那么就去看看onDraw()方法做了什么

       @Override    public void onDraw(Canvas canvas) {
              /**
               * 想修改掃描框的位置修改CameraManager中的參數(shù)
               */
              Rect frame = CameraManager.get().getFramingRect();
              if (frame == null) {
                  return;
              }
      
              if (!isFirst) {
                  isFirst = true;
                  slideTop = frame.top;
                  slideBottom = frame.bottom;
              }
              int width = canvas.getWidth();
              int height = canvas.getHeight();
              /**
               * 畫白線矩形
               */
      
              paint.setStyle(Paint.Style.STROKE);
              paint.setColor(Color.WHITE);
              path.moveTo(frame.left + CORNER_OFFEST, frame.top + CORNER_OFFEST);
              path.lineTo(frame.right - CORNER_OFFEST, frame.top + CORNER_OFFEST);
              path.lineTo(frame.right - CORNER_OFFEST, frame.bottom - CORNER_OFFEST);
              path.lineTo(frame.left + CORNER_OFFEST, frame.bottom - CORNER_OFFEST);
              path.close();
              canvas.drawPath(path, paint);
      
              // Draw the exterior (i.e. outside the framing rect) darkened
              paint.setColor(resultBitmap != null ? resultColor : maskColor);
              paint.setStyle(Paint.Style.FILL);
              /**
               * 畫上下左右4個位置的半透明黑色布局
               */
              canvas.drawRect(0, 0, width, frame.top, paint);
              canvas.drawRect(0, frame.top, frame.left, frame.bottom + 1, paint);
              canvas.drawRect(frame.right + 1, frame.top, width, frame.bottom + 1,
                      paint);
              canvas.drawRect(0, frame.bottom + 1, width, height, paint);
      
              if (resultBitmap != null) {
                  // Draw the opaque result bitmap over the scanning rectangle
                  paint.setAlpha(OPAQUE);
                  canvas.drawBitmap(resultBitmap, null, frame, paint);
              } else {
                  /**
                   * 畫4個角的小矩形,每個角2個矩形 共8個
                   */
                  paint.setColor(getResources().getColor(R.color.view_rect));
                  canvas.drawRect(frame.left, frame.top, frame.left + ScreenRate,
                          frame.top + CORNER_WIDTH, paint);
                  canvas.drawRect(frame.left, frame.top, frame.left + CORNER_WIDTH,
                          frame.top + ScreenRate, paint);
                  canvas.drawRect(frame.right - ScreenRate, frame.top, frame.right,
                          frame.top + CORNER_WIDTH, paint);
                  canvas.drawRect(frame.right - CORNER_WIDTH, frame.top, frame.right,
                          frame.top + ScreenRate, paint);
                  canvas.drawRect(frame.left, frame.bottom - CORNER_WIDTH, frame.left                    + ScreenRate, frame.bottom, paint);
                  canvas.drawRect(frame.left, frame.bottom - ScreenRate, frame.left                    + CORNER_WIDTH, frame.bottom, paint);
                  canvas.drawRect(frame.right - ScreenRate, frame.bottom                    - CORNER_WIDTH, frame.right, frame.bottom, paint);
                  canvas.drawRect(frame.right - CORNER_WIDTH, frame.bottom                    - ScreenRate, frame.right, frame.bottom, paint);
      
                  /**
                   * 定義每秒的移動速度
                   */
                  slideTop += SPEEN_DISTANCE;
                  if (slideTop >= frame.bottom) {
                      slideTop = frame.top;
                  }
                  lineRect.left = frame.left;
                  lineRect.right = frame.right;
                  lineRect.top = slideTop;
                  lineRect.bottom = slideTop + 18;
                  canvas.drawBitmap(((BitmapDrawable) (getResources()
                                  .getDrawable(R.drawable.fle))).getBitmap(), null, lineRect,
                          paint);
      
                  paint.setColor(Color.WHITE);
                  paint.setTextSize(TEXT_SIZE * density);
                  paint.setAlpha(0x40);
                  paint.setTypeface(Typeface.create("System", Typeface.BOLD));
                  String text = getResources().getString(R.string.scan_text);
                  float textWidth = paint.measureText(text);
      
                  canvas.drawText(
                          text,
                          (width - textWidth) / 2,
                          (float) (frame.bottom + (float) TEXT_PADDING_TOP * density),
                          paint);
      
                  Collection<ResultPoint> currentPossible = possibleResultPoints;
                  Collection<ResultPoint> currentLast = lastPossibleResultPoints;
                  if (currentPossible.isEmpty()) {
                      lastPossibleResultPoints = null;
                  } else {
                      possibleResultPoints = new HashSet<ResultPoint>(5);
                      lastPossibleResultPoints = currentPossible;
                      paint.setAlpha(OPAQUE);
                      paint.setColor(resultPointColor);
                      for (ResultPoint point : currentPossible) {
                          canvas.drawCircle(frame.left + point.getX(), frame.top                            + point.getY(), 6.0f, paint);
                      }
                  }
                  if (currentLast != null) {
                      paint.setAlpha(OPAQUE / 2);
                      paint.setColor(resultPointColor);
                      for (ResultPoint point : currentLast) {
                          canvas.drawCircle(frame.left + point.getX(), frame.top                            + point.getY(), 3.0f, paint);
                      }
                  }
      
                  //不斷重繪 完成光標移動
                  postInvalidateDelayed(ANIMATION_DELAY, frame.left, frame.top,
                          frame.right, frame.bottom);
              }
          }

      注釋比較清晰,掌握基本的自定義View只是就可以畫出來我們展示的效果。 最后我們在看下我們MainActivity的調(diào)用:

       @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
              super.onActivityResult(requestCode, resultCode, data);
              if (requestCode == 200) {
                  if (resultCode == Activity.RESULT_OK) {
                      //還記得我們在講CaptureActivityHandler時 成功就會發(fā)送SCAN_RESULT這個key值的intent嘛?
                      String code = data.getStringExtra("SCAN_RESULT");
                      Log.d(TAG, "onActivityResult:----> " + code);
                      if (code.contains("http") || code.contains("https")) {
                          //二維碼
                          mTextView.setText(code);
                      } else if ((!code.contains("http") || !code.contains("https")) && code != null && TextUtils.isEmpty(code)) {
                          //條形碼數(shù)字
                      //這里注意:如果你掃描的是商品條形碼。返回的條形碼數(shù)字
                      //這里如果你使用webview是無法解析的,一般我們需要查詢
                      //的api接口或是數(shù)據(jù)庫查找才能展示我們想要的結(jié)果 
                          mTextView.setText(code);
                      } else {
                          Toast.makeText(this, "error", Toast.LENGTH_SHORT).show();
                      }
                  }
                  if (resultCode == 300) {
                      //掃描圖片
                      String code = data.getStringExtra("result");
                      Log.d(TAG, "onActivityResult:---->result " + code);
                      mTextView.setText(code);
                  }
                  if (resultCode == 200) {
                      //生成二維碼回調(diào)
                      Bitmap bitmap = Util.createQRCode(dip2px(this, 200), dip2px(this, 200), "https://www.baidu.com/");
                      mImageView.setImageBitmap(bitmap);
                  }
              }
          }

      好了,zxing的使用和相關(guān)類的功能我們有了一個大致的了解。回頭我們在看看zxing的優(yōu)點:可以看到封裝性比較好我們不需要多做什么處理,我們需要什么功能就在基礎(chǔ)上加什么功能,源碼都給我們了,我們也知道每個類是什么作用還不是想怎么改怎么改嘛(高可定制性),還有在使用第三方庫的時候我們比較擔(dān)心的就是我們需要一個庫的功能,但是這個庫卻依賴很多其他的庫,當(dāng)其他庫發(fā)生改動的時候我們需要的庫也要改這就很煩。


      結(jié)束

      在這里我只是做一個拋磚引玉的作用,不管你想要什么樣的UI還是什么樣的布局,我在方法中加了注釋不喜歡那里將代碼刪除寫上自己想要的效果就好。畢竟我還是個小白菜鳥。如果你也在學(xué)習(xí)的路上,想在你自己應(yīng)用加上掃碼功能,希望這篇文章能給你一些幫助。如果像直接使用下面我給出了源碼,可以直接放入項目中也可導(dǎo)入library。 寫的不好大家多多諒解。如有錯誤真心希望大家提出來。最后希望大家一起進步。加油!!!


      noet 自定義字段

      相關(guān)內(nèi)容

      ——
      31

      2019-08

      基于zxing的二維碼掃描

      現(xiàn)在的應(yīng)用中二維碼掃描已經(jīng)成為一個應(yīng)用必不可少的功能,現(xiàn)在大部分Android二維碼掃描都是基于zxing和Zbar,這文章就來介紹一下基于zxing的二維碼掃描。先看下效果圖效果圖雖然現(xiàn)在的關(guān)于二維碼的文章有很多,但是很多都是交我們怎么使用,在使用的時候我也遇到了很多問題,比如… [了解更多]

      ? ?
      上海驍唐智能科技有限公司是一家專業(yè)從事條碼掃描器、條碼打印機、標簽耗材、數(shù)據(jù)采集等智能識別應(yīng)用系統(tǒng)的高科技條碼物聯(lián)網(wǎng)企業(yè)。提供Datalogic得利捷、Mindeo民德、Newland新大陸、Honeywell霍尼韋爾等條碼掃描器,數(shù)據(jù)采集器,條碼打印機等條碼設(shè)備及條碼掃描器軟件下載、條碼打印機維修、條碼管理系統(tǒng)。驍唐專注于新零售和智能制造等的發(fā)展,有自己獨立的掃描器品牌同時也是眾多國際知名自動識別設(shè)備廠商的戰(zhàn)略合作伙伴。

      地 址:中國(上海)自由貿(mào)易試驗區(qū)臨港新片區(qū)平港路883-885號1幢

      郵政編碼:201411

      電 話:13761963296

      郵 箱:847098433@qq.com

      投訴郵 箱:info@xtvu.com

      主站蜘蛛池模板: 大牛影库战狼6免费高清视频| 少林叛徒| 姊妹牙医完整版视频在线观看 | 库伊拉黑白魔女| 山城的灯光战胜了火光| 销冠的秘密3在线观看| 百家讲坛刘心武揭秘红楼梦| 《交缠》2024年电影| 《背叛老公的社长夫人》最新电影在线观看 -西瓜电影免费播放 -灵蓄影院 | 和静县| 鬼吹灯之龙岭迷窟| 七天骗了一个村| 爱我几何莫妮卡| 年轻的母亲1在线播放| 梅西被巴黎停赛两周| 一个好妈妈9字头强华驿演员表| 武邑县| 咱们裸熊第一季| 维修师傅的艳遇韩国电影| 人生电影高清在线观看| 最好的遇见电视剧| 夜倾情2013全集| 同学两亿岁免费观看免费全集| 《法国空乘4| 纯情罗曼史第一季| 非诚勿扰2电影下载| 卢旺达的玫瑰完整版在线观看| 盗花野史| 一拳超人3在线看免费观看高清| 男按摩师做乳房按摩视频日韩电影| 卫老爹系列1-10集| 夫人的侄子1994剧情简介| 墙头马上电影| 铠甲勇士捕将全集| 《今天的她们》电视剧| 牙医姊妹电影未删减在线观看网站| 射雕英雄传 胡歌版| 特警力量全集免费播放| 韩剧《不懂女人》全集完整版| 人世间在线观看免费完整版高清| 今夜有戏 杨紫| 求婚电视剧| 麦乐迪与父亲经典片段| 五十度灰无删减| 鸦片战争演义| 《公的浮之手中字一2| 德古拉 希尔达| 太仆寺旗| 庶女逆袭:嫡姐别嚣张短剧全集| 龙门客栈在线观看免费完整版| 入室强奸初中生免费观看 | 美丽小蜜蜂9| 苹果电影免费完整版在线观看影片 | 学生的妈妈2中韩双字多鱼1| 爱慕大秀| 《代替满足妻子》电影| 也平凡1-45集免费观看| 年经继4| 战至巅峰第三季2024年播出| 男按摩师 满天星在线免费观看| 新水浒传28| 狂飙电视剧全集免费播放在线观看| 小舞深夜激情| 原来的神马电影在线观看免费| 《金牌销售》法国| 神澜奇域无双珠动漫在线观看| 别墅互换在线观看| 老师的手指在里面转动的写| 男女一起愁愁愁免费观看电视剧| 韩剧回家的路| 青青河边草HD免费观看电视剧| 丁度巴拉斯肉蔻之香免费在线观看| 侠之大者完整版免费观看| 日产精品卡二卡三卡四卡区| LX司令| 凤舞天娇| 新妈妈免费在线观看| 《日本公与媳5》筱田优| 无法满足1980意大利呼叫合| 桥隆飙2| 金银1—5国语免费观看普通话| 摸摸美女全身| 《导师》完整版电影| 韩剧公司下属的老婆| 孤堡惊情 下载| 风云再起电影完整版| 卖房销售完整版| 环珠格格| 娘家的故事优酷| 天海翼香汗女教师在线播放-手机高清免费国语メイリン モデルコレクション-SL2 | 李宗瑞在线免费观看| 两个人做aj的电视| 老表你好嘢| 《妻子8》在线观看免费版电视剧| 打黑电视剧免费观看| 女婿回家| 《千金与佣人》| 《年轻女教师3》在线| 温柔的搜子2高清韩国| 激战HD| 南少林三十六房| 左旋肉碱有用么| 需要爸爸播种在美国| 美国派4 美国重逢| 谢娜唱哭了| 做做aj电视剧免费观看完整版| 高清《禁忌的恋爱关系》在线播放| 《王昭君》| 日本金银1-5普通话版| 电视剧生死相依| 神机妙算刘伯温第七单元| overflower免费观看动漫全集完整版,没有血缘关系 | 地球上的星星电影免费观看| 名侦探柯南全集中文版| 美国私人女性监狱电影| 上位2电影| 电视剧猎狼十二钗| 电影金瓶梅电视剧免费观看全集 | 精灵宝可梦樱花免费观看| 爱要怎么戒| 滁州市| 多巴安小精冈搞笑诡故事| 电视剧神话免费观看完整版| 电影《享受乐趣》1982版| 《堕落的女律师》HD中字 | 澳门风云3西瓜| 花开有时颓靡无声水千丞全文阅读| 日本男星梶田冬磨去世| 插曲40分钟完整高清| 《同学聚会》日剧| 青海花儿胡汉三| 怪兽入侵| 酒店视频1-3集免费播放| 爱情公寓5第13集| 旗开得胜下一句怎么接| 绯闻女孩第一季全集| 漂亮的瘦子电影| 最美时光电视剧| 乱世三义高清全集| 香蕉TV免费| 大江大河3全集免费播放| 好姑娘3中文在线观看| 肯德桑德兰满天星主演是谁| 离人心上电视剧免费观看全集| 楚汉传奇百度影音| 《妻子6》在线观看免费版电视剧 坎贝尔《人生无憾》在线播放 | 王多鱼打扑克牌免费视频| 《变形金刚》| 让子弹飞观看免费完整版| 《醉后的玫瑰》电影在线观看| 还珠格格第三部全集免费观看| 女子私人监狱免费观看全集剧情介绍 | 赌霸粤语| 我们的翻译官免费观看| 回龙观星美影城影讯| 年轻夫妇韩剧中文版免费观看| 激战后厨72小时| 私奔原唱| 清明上河图密码40集全| 聊斋3众女聚之欢| 爱我多深未删减版最经典十首歌曲 | 哪吒2在线观看免费版高清| 极品家丁5200| 邓丽君歌曲演唱会| 薛平贵与王宝钏电视剧全集下载| 邻家姐姐的味道| 男按摩师性爱电影| 黑白潜行| 反转人生电视剧免费观看完整版| 《我的私人游戏教练》| 爱的创可贴结局| 天外来客bt| 我的健身锻炼电影观看| 破冰行动电视剧| 罪夜之奔第一季| 不戴胸罩叫邻居修灯泡| 乒乓球混合双打决赛直播| 猎金游戏电影免费观看| 《新员工入职秘书2》免费| 新娘十八岁电视剧国语版全集| 规章制度的作用| 潍坊科技学院吊带| 漂亮的的瘦子4| 花宫亚美| 棋魂国语版| 皇家奶娘视频大全| 移山倒海樊梨花全集| 善良的瘦子5最漂亮三个角色| 第一目标演员表| 我的美女上司遥控器| 美国vs塞尔维亚| 荆门市| 锦月如歌电视剧观看| 私人瑜伽教练电影| 梁安琪外面的男人| 伦理片销售皇后| 狼行天下之钦差| 大决战剧情分集介绍| 向井蓝之特殊治疗医护工作内容与背 | 以她为笼短剧| 下属的妻子去社长家吃饭在线| 闯关东2电视剧全集免费观看| 刺青下载| 捉鬼敢死队满天星版| 龙腾四海国语高清| 金三角电影《女毒枭》| 罚罪电视剧免费观看全集在线播放| 四位人妇精油按摩的功效电影| 美洲杯赛程2021| 刀光枪影电视剧| 我的女游泳教练| 绽放的许开心 电视剧 在线观看| 阿弥陀佛的故事| 神与律师事务所| 石柱| 爱上特种兵免费观看| 怪侠欧阳德剧情分集介绍 | 私人女子监狱意| 新金瓶梅下百度影音| 剑侠电视剧| 西部通缉令未删减完整| 杉野希妃三级| 已婚妇女的下午中文电影| 《社长夫人的美貌》哪里能免费看 | 罗曼蒂克消亡史免费观看| 初体验5电视剧免费观看| 83版射雕英雄传| 美国式保罗21原版| 关之琳高尔夫| 《反击》在线观看完整版| 卢旺达的玫瑰完整版在线观看| 混战两姐妹国语版免费观看高清| 秘密的爱电影免费观看剧情解析| 风筝电视剧完整版| 庆余年第2部| 黑洞照片发布直播| 仓鼠管家| 两个世界泰剧双男主电视剧在线看 | 幻世录3下载| 年轻的妈妈11| 乔布斯传电影| 《农场保卫战》满天星法国在线观看| 苹果在线观看| 《偷香》未删减在线观看| 大侦探第七季在线观看免费版| 《邻家姐姐》免费观看电视剧中字| 坎贝奇无憾完整版| 隐藏的面孔| 叛逆者免费观看完整版电视剧| 大鱼海棠电影| 私人定制在线观看| 里沙村电影免费观看| 灭门惨案ii之借种| 在女儿的肚子里撞一撞| 宾馆高清野鸡激战| 外卖曝光电影| 扫毒风暴全集高清完整版免费观看| 猎刃电视剧在线观看| 三级剧情片| 《日加橹》冒险片无删减完整版-冒险片危地马拉手机在线播放-临深电影网 | 禁忌年转一代中文| 老公的朋友来做客| 我家有喜44| 动漫《家属》在线观看免费| 名侦探柯南621| 沉沦肉欲的娇妻第十一章| 别墅轮换3攻略完整版免费 | pgd 606中文字幕| 台湾歌手叶胜钦因骨髓癌去世| 房奴试爱电影片尾曲| 只有妈妈好| 富有的玫瑰1987| 《欢乐岁月》| 熟睡中被义子侵犯电影| 保卫孙子电视剧| 铠甲勇士星耀觉醒| 惠来县| 品味人生无憾在线观看| 赘婿 电视剧| 异世界迷宫开后官二季| 恋爱的味道观看| 永远的第一名番外| 特别使命电视剧全集免费观看| 郝邵文电影全集国语| 倔强的花子与驱魔师| 三年电影免费完整版| 戏台电影| 邻居也疯狂 电视剧| 裸体按摩电影| 《神话》| 玩弄三个高大的熟妇赶尸艳谈| 迷人的保姆4| 王向阳书法| 女板战狼6免费观看| 不差钱电影| 地球上的星星2全集观看| 《种马2》| 请赐我一双翅膀免费观看全集| 谍影重重之上海电视剧| 《咱们结婚吧》| 按摩5个混血儿| 魔法使的新娘第一季| 电影《姐妹牙医》正片视频 | 暴躁老妹csgo免费观看| 唐人街探案3免费西瓜观看完整版| 乌恰县| 黄色仓库媒体传媒| 娃娃脸电影完整版在线观看| 《大梦归离》| 《渔夫的老婆》赛仑| 粉嫩小女生| 昆山事件| 哈马斯和法塔赫是什么关系啊| 杜汶泽3d豪情| 幻灵先生| 泰剧大全电视剧大全免费观看| 还珠格格新| 大鹏电影大赢家免费观看| 大牛影库战狼6观看免费| 岳母幸福生活| 好先生 番外篇| 男女一起愁愁愁免费全集高清电视剧 | 陈观泰电影| 《麦乐迪·:女超人》在线观看| 《隔壁女邻居》完整版| 警察故事iii超级警察| 马布里与汪妤凌结婚| 女狙击手满天星在线播放| 大宾的寝室免费在线观看 | 伦敦沦陷| 不能说的夏天电影| 赵氏孤儿 高清| 《爱我几何》全集免费高清| 你是谁学校2015| 小日子40集全免费播放| 《初体验5》完整版| 韩剧 白雪公主| 新娘之真爱| 《特殊的治疗》2李采潭中文| 电影失乐园| 风水弃少:改运旺家短剧全集| 劳荣枝庭审直播| 台版1987渔夫荒野史电影| 东京猫猫中文版| 英雄救美3修改器| 插曲的疼| 交换温柔| 高校教师 赤子板栗| 惊声尖笑1免费完整版在线播放| 法国空姐在线观看完整免费高清原声满天星 | 流浪地球2完整版在线看观看免费| 三位大学位按摩记角色评价解析| 国防生电视剧| 蘑菇影视妈妈的职业 经典| 绝情电视剧| omoflow第一季真人中语| 女老大电影免费观看完整版| 密挑aV| 碧血剑林家栋版全集| 八仙饭店2高清免费播放 | 海贼王795| 麦乐迪版超级少女| 勇敢的心在线观看| 欢乐颂1电视剧全集免费观看| 爱丫爱丫免费高清全集| 好想做一次大结局免费观看| 原神申鹤掀起奶盖黄XMAN| 霸气逆袭| 男生女生一起愁电视剧在线观看| 警察故事2电影| 北京地震最新消息1分钟前| 贾静雯回应缺席苏有朋演唱会| 蛇姬恋泰剧未删减版本| 我的姐妹免费韩剧电视剧| 《没关系 是爱情啊》电视剧| 空蝉森酒法子原版| 爱心萌可第一季免费观看| 麦瑟尔夫人电影在线播放| 密室大逃脱5大神版高清免费| 巨茎挺进李淑芬视频-高清电影电影未| 拆弹专家2免费观看完整版国语| 光阴的故事 电视剧| 初恋时间动漫免费观看全集 | 郝蕾郭晓冬电影《颐和》是真的吗 | 群星闪耀时在线观看| 公媳在线观看| 小小水蜜桃19电视剧免费播放| 女子特工队满天星1973| oh 透明人间| 相思蛊电视剧| 白峰电影在线观看免费版第| 成仁电影| 高清未婚男女的效率恋爱| 斗罗大陆双神战双神导演剪辑版 | 新妈妈再爱我一次电影| 日本丰满大胸的继拇3| 幸福归来电视剧免费观看完整版 | 徐若瑄天使心| 八尺夫人免费观看全集完整版意大利 | 惠东县| 《最高の爱人诏》精简| 闪闪的红星在线观看| 阿修罗之怒音乐| 女军医免费完整版| 苹果影片| 鬼吹灯之精绝古城在线| 电视剧化剑| 韩剧《隐形的帽子》免费观看 | 逃跑新郎| 《美容院1特殊待遇》| 不可撤销下载| 龙兄虎弟国语高清| 痴心的我完整无删减版粤语| 需要爸爸播种2哪里可以看| 十万个冷笑话2季| 恋爱先生免费观看全集| 舍我其谁电视剧| 美国电影《小辣椒3》免费观看| 宝宝巴士小苹果| 时光与他 恰是正好| 辽宁省| 彭丹 蛇王波后| 河北电视台农民频道绝对有戏| 入室暴行3被蹂躏在线观看| 最新蛇片| 男人和女人一起愁愁愁电视剧免费观op红楼梦| 落翅女的黄昏| 动漫烟花| 定襄县| 《美容院待遇》酷客| 裂痕短剧电视剧免费观看完整版| 电影洛丽塔| 战狼6| 在姨妈家的客厅| 斯巴达电影在线观看中文| 亲爱的妈妈在线观看| 娃娃脸5免费观看完整版| 屋顶上的王世子| 墓穴迷城迅雷下载| 断魂小丑3正片免费观看| 《需要爸爸播种美国》演员全集| 顶楼的秘密| 热恋2015| 侏罗纪公园 2013 电影| 漂亮的小姨韩剧免费观看| 隔离七日晴| 凶器未删减| 空中蛇灾2| 被部长欺负| 咱们结婚吧电视剧完整版在线观看| 生化危机4高清在线观看| 有情饮水饱国语| 需要爸爸播种美国第二季| 电影制服| 一起来看流星雨在线观看免费高清| 坏妻子便利店被欺负后的剧情解析| 手工制作丝网花| 束缚游戏第一季到第四季在线观看免费| 千日的约定| 指甲刀人魔| 偷窥无罪电影| gv男优| 青梅竹马是消防员风车| 熊出没之猎鹰熊岛完整版在线观看| 花与蛇牙医免费观看完整版 | 国产动漫| 如如影视父子| 日韩yellow| 古川穗香| 绅士们电影完整免费版| 赤裸迷情| 黏黏糊糊的你第1集| 非你莫属最新一期| 美国三片在线播放免费| 爱情最美丽电视剧全集在线观看| 娃娃脸在线观看完整免费高清原声满天星剧 | 玉蒲团之| 哇嘎嘎电影高清免费看| 杀戮霸刀| 星辰变第五季直通大结局| 空碗取水魔术教程图解| 村妓经典k8| 电视剧成长| 开心公寓| 超级cosplay大战| 美国黑白配在线观看免费| 珠帘玉幕电视剧赵露思免费| 长月无烬免费观看完整版| 谁在说慌| 伦理《法国护士长》| 安斋拉拉电影躲雨在线观看| 宫锁心玉21| 王牌保安电影| 合阳县| 特殊的游泳教练在线观看中字 | 美国xxxxwww| 青春期1百度影音| 男女电视剧演员表免费观看| 现在和你相爱的人在一起吗完整版| 《女员工的付出》中文| 兵变1938| 日版花样男子| 需要爸爸的种子12言情片| 高清《诱人的护士》韩国| 《妻子8》HD免费完整| 同乐会 台剧| 开门红扇子舞| 很黄的叫床口述| 意大利《激情丛林》| 春花厌电视剧免费观看| 郎眼财经2013最新| 变形计山呼海唤| 三年观看免费大片| 上海少妇黑人3P完整版BD| 甲午风云电影| 财阀家的小儿子第七集| 泰剧《蛇姬恋》免费观看普通话版全| 绝胜天良百度影音| 我叫刘跃进| 高清7天未删减| 爱我几何在线观看完整版免费高清| melody makes《女超人》免费播放| 逆光飞翔 电影| 落花时节电视剧免费观看第38集| 泰版浪漫满屋12| 母亲爱上儿子的同学》电影| writeas湿透了| 快播电影u影一族| 张警官三部曲免费观看百度网盘| 勇者王粤语| 莺长女儿| 可疑的美容院2| 意大利空乘4美版| 二次大战启示录| 自古英雄出少年之岳飞| 揭东县| 落魄贵族琉璃川观看| 无删减《苹果》| 憨豆先生动画片免费观看全集| 东北对白刺激在线观看| 《千金赤子板栗》完整版免费| 电视剧 追踪| 火影忍者论坛52pk| 明明不是我!电影| 类似TOTAKKAHAYAKIRGUZUX的旅行综艺 | 魔力宝贝监狱高清正版在哪| 罪恶六芒星1979| 元气满满的哥哥| 他的爱情浅| 刻晴大战史莱姆免费观看高清版| 反黑英雄粤语| 辰巳ゆい| 母亲主动给孩子降火好吗| 柳州女子喝醉被| 台湾毛片《鱼夫的荒淫史》在线播放| 韩国队提前庆祝被中国台北绝杀| 一代廉吏于成龙老版电视剧全集| 老郭讲水浒| 漂亮妈妈7巴中字开头谢文安导演| 黑袍纠察队 第四季 免费| 精灵梦叶罗丽第四季| 马克龙访问印度受到豪华接待| 《少女》2电影| 《古墓丽影hr版:满天星》神鬼战士2| 猎魔除凶未删减版免费观看完整版| 雪中悍刀行免费观看完整版| 向涟苍士献上| 兄弟换麦6| 红娘子49集全免费播放| 天下父母心| 斗破苍穹年番| 《施魔法》满天星| 部长来家做客中文字幕在线观看| 康熙王朝 高清| 永乐大帝电视剧全集免费观看| 约翰汤普森简易钢琴教程| 激情众林| 甄嬛传免费版在线观看完整版| 妖精的尾巴51| 我的上司尺码是XL类似| 千金奴隶在线观看免费版电视剧| 高压监狱2在线观看免费版高清| 上错花轿嫁错郎| 乔布斯传电影| 裸体按摩电影| 古墓丽影满天星高压美版免费| 荣誉守则成人版在线观看| 自由的他们电影免费观看全集高清| 不完美的她免费观看| 前田香织种子| 爸爸需要播种子| 刺杀玫瑰全集| 双探多少集| 空中浩劫纪录片| 笨厨二美| 正在播放:丈夫不在家的5天之间,被命令禁欲直到初夜为止的我身心都被性豪的公 | 奇妙发型屋| 母亲爱上儿子同学日本电影| 愿君安宁全集完整版| 咱们结婚吧第21集| 恋爱先生电视剧演员表| 激战丛林美国未删减完整版在线观看| 爱情公寓11集| 珠江人家电视剧免费观看| 马永贞之英雄血国语| 痛爱当我遇上你| XL司令高清免费看| 斗龙战士6| 电视剧风筝在线观看| 财经郎眼2015| 夏炉冬扇| 罗丽星克莱尔电影全集| 爸爸快长大电视剧| 私密按摩师电影免费完整版| 盗墓笔记藏海花| 增城市| 男女生一起愁愁视频| 金瓶玉2之性奴| 安娜贝尔3| 《缘来天注定》泰剧| 《入室暴行》国语在线| 妈妈的职业在线观看视频| 噬血狂袭第二季| 告密者演员表| 牛魔王和铁扇公主| 日批发出来的声音录音| 女销售的销售秘诀2免费观看 | 深海利剑电视剧| 兄弟的女人韩剧电视剧| 嘉黎县| 《特殊游泳教练》完整版 | 需要爸爸的种子观看| 多功能电焊机多少钱一台| 小巷人家1至42集| shameless第三季免费观看| 血族第三季| 女子医院满天星法版免费观看高清| 大西洋帝国第一季| 女技师| 误杀2在线观看免费完整国语高清| 魔童降世| 苏里南韩剧免费观看| 97在线免费观看| 想要爸爸播种子在线观看 | 肉蔻之香1意大利完整版| 《住在隔壁的女孩》电视剧在线观看 | 隐面佳人免费阅读| 觉醒年代一共多少集| 凹凸世界免费看| 托克托县| 轮换2HD中字_午夜电影全集_完整版免费在线观看-天天影院 | 李玲:高价药很多人享受不到| 甜蜜惩罚2我是看守专用宠物| 康熙王朝50集全集高清| 八仙饭店2高清免费播放 | 电视剧天眼| 周弘版《村枝》免费观看电视剧| 酋长的男人在线观看| 马腾你别走未删减| 天真有牙| 乱世桃花全集免费观看| 加勒比海盗1黑珍珠的诅咒| 深圳出租屋的故事完整版| 清凌凌的水| 年轻的母亲2在线观看木瓜网| 野丫头电视剧免费观看全集 | 曹查理 风流电影| 除却巫山无删减版txt| 官方通报县领导出轨女干部| 挡不住的风情图片| 韩国电影医生高清完整版在线观看| 两个只能活一个电影| 《爱我几何》正版| 奔跑吧兄弟第八季| 隐身的名字| 天使衣橱| 韩剧千次的吻全集| 李恩美《维修》| 斯托雅《法国女仆》| 电视剧守望| 神武主题曲| 追鱼传奇全集| 落魄贵族琉璃川免费动漫| 卢旺达的玫瑰在线观看 | 行尸走肉第三集| 亲爱的热爱的全集免费版电视剧| 需要爸爸的种子bd| 珠帘玉幕 电视剧| 白娘子传奇主题曲| 神医弃女短剧全集| 儿媳你的真好吃| 韩国r电影| 《暴躁少女免费观看全集高清》电影免费在线观看完整版 - 光棍影院 | 偷爸爸的种子免费观看电视剧| 和讨厌的部长出差在线| 生存之民工| 母亲5免费完整高清电视| 岁月风云之雄霸天下| 《安·李的遗嘱》| 5555法国空少| 教室内污辱女教师BD高清在线观看| 新妈妈完整版| 秦王李世民电视剧| 哈利 波特与死亡圣器(下)| 黑白配1080P免费观看美国| 正在播放: ROE-417 在见证女儿幸福的同时……却在婚礼宴席上,被女婿侵犯的母 | 隐身帽| 日剧《按摩男》免费观看| 徐若瑄演的魔鬼天使| 恋上你的床国语| 长安二十四计电视剧在线观看 | 某年某月某一天| 《年轻的女仆》在线观看| 塔斯尼帝复仇2成电影6月12| 朋友家的麦子2中文版配音 | 云南歪歌大全| 浴血黑帮第四季| 绣春刀2修罗战场| 论坛| 铿铿锵锵锵锵免费观看在线观看| 回心转意伴奏| 战狼2免费| 青面修罗电影在线观看免费| 水门桥在线观看完整版高清| 一起愁愁愁30分钟电视剧免费观看 | 渔夫荒淫史电影在线观看| 神与律师事务所| 超级三等兵| 漂亮的保姆韩国电影免费看| 美丽妻子替弟还债| 男生和女生一起愁愁愁在线观看| 画壁快播| 电影强我| 林风短剧免费全集播放| 高清《夜魔侠:重生》免费观看| 布兰迪洛夫《不当军事行为》2017免费| 猫之茗全集免费观看第二季| 金丝雀失忆后| 女律师的堕落免费| 《轧戏》电视剧免费观看全集| 代号麻雀| 国产宾馆真实人妻互换| 女超人完整在线观看| 米奇妙妙屋全集1| 牌坊下的女人全集| 两个人观看的视频| 少年派2 电视剧| 双人按摩| 由菱开始电影免费| 仙逆动漫73集| 黑豹天下国语版| 新福尔摩斯第二季| 时光尽头的恋人| 借种中文字幕HD中字| 好姑娘国语高清观看| 聊斋之艳蛇在线观看| 年轻善良的岳母| 人间中毒免费观看完整版在线| 台湾经典剧《女家教》| 烟花巷里禁忌之恋| 行者合金尼泊尔| 真心英雄电视剧完整版在线观看| 打黑风暴22集全免费| 《妻子10》在线观看全集| 成全动漫全集免费看| 《XL司令》动漫第一季动漫无码| 孵蛋皇后| 长相思第二季完整版免费观看| 极限救援优酷| 变形金刚 高清| 堕落的女律师| 屠夫呕吐娃娃视频| 抢奸电影| 欢乐白领夫妻| 完美真相优酷| 烟卡稀有度排名| 《特殊诊所》苍井空| 《幸福花园》双男主动漫免费看| 再用点力今晚随你弄| 泡面小食堂| 小学生高清电影免费观看| 激情网在线视频| 人猿泰山未删减版1991劳拉 | 电视剧需要爸爸播种子剧情| 山丹丹开花红艳艳简谱| 老版霍元甲| 《爱我几何》免费观看完整版电影法| 凯·帕克电影在线观看| 绝密543电视剧全集免费完整版| 刀郎经纪公司回应新歌争议| 男人与女人在一起愁愁愁愁的电视剧 | 和部长| 辣妹视频| 遍地狼烟在线观看| 甜蜜惩罚在线观看| 黄雀在后电影免费观看全集高清版| 美和花园电影在线观看最新集数 | 让子弹飞电影完整| 咒怨电影在线完整免费观看| 电影免费观看在线高清完整 | 香港电影大全免费观看国语版| 无人可信泰剧| 《女员工的滋味》| 灿烂的季节大结局| 鮎川なお| 双女任务在线播放| 林珍娜为艺术献身电影在线观看| 冷眼看客| 正宗泡菜制作方法教程| 熊出没之夺宝熊兵电影| 师兄撞鬼国语版免费观看| 掌中之物西班牙版本无删减在线观看| 大江大河3全53集下载| 真假包青天| 毒爱泰剧| 密爱 电影| 迅雷哥手版电影| 韩国电影美容店的特别待遇5中字 《水润女人》刘志贤演谁 | 星光美丽电视剧全集在线观看免费 | 唐人街探案3正片免费观看| 添女人荫蒂视频A片| 喝醉侵犯在线观看| 你是我兄弟36| 蛇经常吐舌头是因为什么呢| 我的丑娘剧情介绍| 我是刑警全集免费观看| 电影八尺夫人 意大利 完整版免费观看| 仙女屋全集在线播放| 毛线袜套的织法| 度华年在线观看免费完整版星辰| 上海皇帝之岁月风云| 凤凰的巫女| 伴换5| 爱我几何电影在线观看免费莫尼卡| 夏日重现| 熊出没之重返地球免费观看完整版| 命运交响曲迅雷下载| 罪恶都市电影| 99热爱| 铿锵免费观看在线播放| 《极乐宝鉴》在线观看| 无尽的爱电视剧免费观看| 动画片六神合体| 我不可能爱你全集| 财神客栈在线观看| 女子私人监狱美国版电影免费观看全 | 《有翡》电视剧| 《法国空乘4》免费播放| 杰西简壮志凌云| 一见你就笑全集| 男男少年乖H调教跪趴SM文|