精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android放大鏡效果實現(xiàn)

移動開發(fā) Android
基本原理就是使用ShapeDrawable構(gòu)造一個圓形的drawable,然后它的paint的shader設(shè)置為將要放大的圖片,然后就是簡單的位置移動問題了。放大鏡的半徑和放大倍數(shù)都可以在代碼里面修改,代碼都有注釋,應(yīng)該很好理解了。

概述

我相信很多用過英語應(yīng)用的同學(xué)都看多一個放大鏡的效果,就是選中一段文字后,會有一個放大鏡,這個究竟怎么實現(xiàn)的呢,我們今天來分析分析。

 

 

 

 

源碼分析

  1. public class ShaderView extends View { 
  2.      private final Bitmap bitmap; 
  3.      private final ShapeDrawable drawable; 
  4.      // 放大鏡的半徑 
  5.      private static final int RADIUS = 80; 
  6.      // 放大倍數(shù) 
  7.      private static final int FACTOR = 3; 
  8.      private final Matrix matrix = new Matrix(); 
  9.   
  10.      public ShaderView(Context context) { 
  11.           super(context); 
  12.           Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.drawable.demo); 
  13.           bitmap = bmp; 
  14.           BitmapShader shader = new BitmapShader(Bitmap.createScaledBitmap(bmp, 
  15.           bmp.getWidth() * FACTOR, bmp.getHeight() * FACTOR, true), TileMode.CLAMP, TileMode.CLAMP); 
  16.   
  17.           // 圓形的drawable 
  18.           drawable = new ShapeDrawable(new OvalShape()); 
  19.           drawable.getPaint().setShader(shader); 
  20.           drawable.setBounds(0, 0, RADIUS * 2, RADIUS * 2); 
  21.     } 
  22.   
  23.     @Override 
  24.     public boolean onTouchEvent(MotionEvent event) { 
  25.          final int x = (int) event.getX(); 
  26.          final int y = (int) event.getY(); 
  27.   
  28.          // 這個位置表示的是,畫shader的起始位置 
  29.          matrix.setTranslate(RADIUS - x * FACTOR, RADIUS - y * FACTOR); 
  30.          drawable.getPaint().getShader().setLocalMatrix(matrix); 
  31.   
  32.          // bounds,就是那個圓的外切矩形 
  33.          drawable.setBounds(x - RADIUS, y - RADIUS, x + RADIUS, y + RADIUS); 
  34.          invalidate(); 
  35.          return true
  36.     } 
  37.   
  38.     @Override 
  39.     public void onDraw(Canvas canvas) { 
  40.          super.onDraw(canvas); 
  41.          canvas.drawBitmap(bitmap, 0, 0, null); 
  42.          drawable.draw(canvas); 
  43.     } 

 

基本原理就是使用ShapeDrawable構(gòu)造一個圓形的drawable,然后它的paint的shader設(shè)置為將要放大的圖片,然后就是簡單的位置移動問題了。放大鏡的半徑和放大倍數(shù)都可以在代碼里面修改,代碼都有注釋,應(yīng)該很好理解了。

不過,一個問題如果只有一種解決方法的話,那未免有點令人沮喪,想玩點另類的都不行。玩程序就得玩出個性,玩出激情。哈哈,廢話太多,切回正題。再來看看放大鏡的另外一種實現(xiàn)吧

  1. public class PathView extends View { 
  2.      private final Path mPath = new Path(); 
  3.      private final Matrix matrix = new Matrix(); 
  4.      private final Bitmap bitmap; 
  5.   
  6.      // 放大鏡的半徑 
  7.      private static final int RADIUS = 80; 
  8.   
  9.      // 放大倍數(shù) 
  10.      private static final int FACTOR = 2; 
  11.      private int mCurrentX, mCurrentY; 
  12.   
  13.      public PathView(Context context) { 
  14.           super(context); 
  15.           mPath.addCircle(RADIUS, RADIUS, RADIUS, Direction.CW); 
  16.           matrix.setScale(FACTOR, FACTOR); 
  17.   
  18.           bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.demo); 
  19.      } 
  20.   
  21.     @Override 
  22.     public boolean onTouchEvent(MotionEvent event) { 
  23.          mCurrentX = (int) event.getX(); 
  24.          mCurrentY = (int) event.getY(); 
  25.   
  26.          invalidate(); 
  27.          return true
  28.     } 
  29.   
  30.     @Override 
  31.     public void onDraw(Canvas canvas) { 
  32.          super.onDraw(canvas); 
  33.   
  34.          // 底圖 
  35.          canvas.drawBitmap(bitmap, 0, 0, null); 
  36.   
  37.          // 剪切 
  38.          canvas.translate(mCurrentX - RADIUS, mCurrentY - RADIUS); 
  39.          canvas.clipPath(mPath); 
  40.   
  41.          // 畫放大后的圖 
  42.          canvas.translate(RADIUS - mCurrentX * FACTOR, RADIUS - mCurrentY * FACTOR); 
  43.          canvas.drawBitmap(bitmap, matrix, null); 
  44.     } 

 

這里使用的是Path類,將canvas剪切出一塊圓形區(qū)域,在其上繪制放大的部分。

工程下載地址http://download.csdn.net/detail/hustpzb/4523274

責(zé)任編輯:龐桂玉 來源: Android開發(fā)中文站
相關(guān)推薦

2012-05-30 10:43:47

jQuery

2013-07-05 10:26:40

Android

2015-03-10 11:36:25

jQuery仿淘寶產(chǎn)品圖片放大鏡代碼

2023-08-02 08:00:00

JavaScriptWeb

2011-09-08 17:50:34

Windows7放大鏡

2013-06-25 11:21:35

Android開發(fā)幻燈片效果Gallery

2012-06-15 10:33:06

JavaScript

2021-08-23 15:10:52

GNOME雙重繪制桌面

2010-08-03 11:29:09

Flex全屏

2009-12-25 14:25:39

WPF圖標(biāo)

2010-09-10 09:57:27

DIV樣式

2009-04-16 09:28:30

NokiaPhoto BrowsS60

2011-08-10 14:40:23

iPhone動畫

2017-02-14 17:29:42

Android毛玻璃虛化效果

2009-08-17 17:15:48

C# 進度條效果

2022-07-28 14:33:32

webviewweb頁面

2011-03-31 09:25:10

2024-12-04 11:04:24

微軟Windows 11

2010-09-10 14:33:32

SQL循環(huán)語句

2016-03-04 10:50:02

ios圓角高效添加
點贊
收藏

51CTO技術(shù)棧公眾號

日韩一二三区| 国产午夜精品久久久久免费视| 99国产一区| 亚洲色图综合久久| 亚洲精品国产一区二区三区| 手机在线免费观看av| 久久只精品国产| 国产色综合天天综合网| 国产亚洲精品久久久久久无几年桃 | 天天干天天综合| 男女免费观看在线爽爽爽视频| 久久丝袜美腿综合| 亚洲最大激情中文字幕| 亚洲av无码精品一区二区| 婷婷激情图片久久| 亚洲欧美国产视频| 国产在线观看免费播放| 蜜桃视频成人m3u8| 亚洲一二三四久久| 亚洲日本精品国产第一区| 欧美一级性视频| 国产在线麻豆精品观看| 国产999精品久久久影片官网| 91日韩中文字幕| 国产精品一区二区99| 欧美精品一区在线观看| 一级黄色片在线免费观看| 成人黄色免费短视频| 亚洲午夜免费电影| 在线视频不卡一区二区三区| 国产在线视频你懂得| 成人激情av网| 91精品天堂| 国产精品一品二区三区的使用体验| 久久成人精品| 97热在线精品视频在线观看| 欧美成人精品欧美一级| 五月久久久综合一区二区小说| 亚洲人成网站999久久久综合| 天堂www中文在线资源| 精品国产亚洲一区二区三区在线 | 海角国产乱辈乱精品视频| 日本免费网站视频| 精品国内自产拍在线观看视频 | 国产精品小说在线| 99久久精品国产一区二区成人| 自拍在线观看| 亚洲午夜精品一区二区三区他趣| 亚洲欧美日韩另类精品一区二区三区| 亚洲欧洲综合在线| 成人网页在线观看| 成人在线观看网址| 精品国产区一区二| 国产一区二区三区观看| 成人综合国产精品| 一级黄色片在线| 精品一区二区在线免费观看| 国产精品福利在线观看网址| 波多野结衣一区二区三区四区| 亚洲一区视频| 欧美在线播放视频| 国产精品视频一区在线观看| 国产亚洲毛片在线| 欧美在线免费视频| 青青青国产在线| 久久精品一区二区国产| 国产成人精品综合| 狠狠躁夜夜躁人人爽视频| 日韩精品电影一区亚洲| 国产精品入口免费视频一| 中文字幕视频免费观看| 久久99国产精品久久| 91亚洲精品久久久久久久久久久久| 国产一区二区在线视频聊天 | 激情 小说 亚洲 图片: 伦| 欧美日韩女优| 7777精品伊人久久久大香线蕉最新版| 手机在线视频一区| av日韩精品| 精品呦交小u女在线| 老熟妇一区二区| 久久视频精品| 久久99精品视频一区97| 可以免费在线观看的av| 蜜桃av一区二区| 亚洲综合自拍一区| 五月婷婷伊人网| 国产亚洲一二三区| 99中文字幕在线观看| 黄色在线观看www| 日本高清免费不卡视频| 999久久久精品视频| 福利片一区二区| 国产一区二区三区视频免费| 手机在线免费看片| 一本色道久久精品| 成人在线免费观看视视频| 东京干手机福利视频| 久久久91精品国产一区二区精品 | 精品国产免费久久久久久尖叫 | 欧美精品在线免费观看| 一区二区三区福利视频| 国内精品国产三级国产a久久| 国产三区二区一区久久| a√资源在线| 亚洲va国产天堂va久久en| 天堂av在线网站| 成人h动漫精品一区二区器材| 在线观看91久久久久久| 国产无遮挡又黄又爽又色| 美腿丝袜亚洲一区| 黑人巨大精品欧美一区二区小视频 | 亚洲天堂成人在线| 精品99久久久久成人网站免费| 久久天堂精品| 国产精品区二区三区日本| av在线电影播放| 欧美日韩国产精品一区| 日本特黄在线观看| 日韩综合精品| 国产成人黄色av| 日本xxxxxwwwww| 亚洲欧美经典视频| 亚洲综合色在线观看| 全球av集中精品导航福利| 久热精品视频在线观看| 真实的国产乱xxxx在线91| 91在线码无精品| 免费超爽大片黄| 欧美久久亚洲| 久久精品91久久香蕉加勒比| 精人妻无码一区二区三区| 99在线精品一区二区三区| 成人午夜免费在线视频| 国产精久久一区二区| 色777狠狠综合秋免鲁丝| 波多野结衣视频观看| 2021国产精品久久精品| 奇米精品一区二区三区| 国产精品毛片久久久| 免费99精品国产自在在线| 亚洲在线精品视频| 亚洲国产精品成人久久综合一区| 中文字幕乱码人妻综合二区三区| 牛牛精品成人免费视频| 久久久久免费视频| 亚洲美女福利视频| 亚洲一区在线观看免费| 亚洲少妇中文字幕| 欧美视频在线观看| 国产精品对白一区二区三区| 久草在线视频福利| 欧美变态口味重另类| 黄页网站免费观看| 国产成人免费视频精品含羞草妖精| av动漫在线免费观看| 亚洲超碰在线观看| 欧美精品videossex性护士| 性中国古装videossex| 亚洲国产精品视频| 亚洲 欧美 日韩在线| 99综合视频| 欧美日韩亚洲一区二区三区四区| 欧美性suv| 中文字幕一精品亚洲无线一区| 亚洲综合视频在线播放| 亚洲乱码国产乱码精品精的特点 | 99视频免费看| 亚洲最新视频在线播放| 精品中文字幕在线播放| 久久国产66| 在线成人性视频| 色悠久久久久综合先锋影音下载| 久久久久久久久久久91| 日本免费一区二区三区最新| 欧美在线免费观看亚洲| 精品国产精品国产精品| 成人国产免费视频| 女人喷潮完整视频| 日本一区二区免费高清| 亚洲一区二区三区香蕉| 成人影院在线视频| 在线成人激情视频| 亚洲国产精品18久久久久久| 精品福利在线视频| av黄色免费在线观看| 成人av免费在线| mm1313亚洲国产精品无码试看| 一级欧洲+日本+国产| 精品国产一区二区三区免费| 久久xxx视频| 久久久久久国产精品美女| 经典三级在线| 精品蜜桃在线看| 国产一级精品毛片| 亚洲一区二区三区四区在线观看 | 婷婷亚洲五月色综合| 国产免费一区二区| h1515四虎成人| 久久免费福利视频| av在线二区| 日韩成人在线视频| 国产人妖一区二区三区| 欧美性猛交xxxx久久久| 福利所第一导航| 欧美激情一区二区三区不卡 | 中文字幕一区免费在线观看| 欧美双性人妖o0| 久久精品久久综合| 国产又黄又大又粗视频| 欧美黄免费看| 亚洲不卡1区| 成人午夜三级| 成人免费大片黄在线播放| 婷婷激情一区| 97国产精品视频| h片在线播放| 在线国产精品视频| 日本一级在线观看| 亚洲成人1234| www.国产精品视频| 欧美三级视频在线观看| 久久精品视频1| 亚洲成a人片在线观看中文| 欧美手机在线观看| 国产精品天干天干在线综合| 人妻在线日韩免费视频| 粉嫩av一区二区三区粉嫩| 久久久久久久久久久久久久久国产| 美女久久一区| www.中文字幕在线| 亚洲福利专区| 2018日日夜夜| 激情久久一区| 人人妻人人澡人人爽欧美一区双 | 99999精品视频| 亚洲特色特黄| 欧美中文字幕在线观看视频| 偷拍欧美精品| 曰韩不卡视频| 亚洲精品a级片| 日本一区二区三区四区五区六区| 久久中文字幕av| 亚洲日本无吗高清不卡| 色中色综合网| 三级网在线观看| 亚洲深深色噜噜狠狠爱网站| 一级黄色免费在线观看| 99久久夜色精品国产亚洲96| 一区二区在线不卡| 日韩精品首页| 色呦呦网站入口| 最新精品国产| cao在线观看| 日韩一级不卡| 成年人免费大片| 日韩电影在线免费观看| 亚洲福利精品视频| 久久99国产精品尤物| 伊人av在线播放| 成人午夜伦理影院| 性久久久久久久久久久| 久久久另类综合| 欧美成人久久久免费播放| 中文字幕制服丝袜成人av| 中国一级片在线观看| 亚洲精品videosex极品| 国产午夜精品无码| 欧美午夜影院在线视频| 日批视频免费观看| 91精品国产综合久久蜜臀 | av在线不卡精品| 国产精品一区av| 日韩成人在线观看视频| 国产一区二区三区免费不卡| 亚洲最大在线| 中文字幕人成一区| 好看的日韩av电影| 青青青在线播放| 国产在线一区观看| 熟妇人妻久久中文字幕| 中文字幕+乱码+中文字幕一区| 欧美日韩在线国产| 粉嫩av一区二区三区免费野| 国产无遮挡又黄又爽又色视频| 6080国产精品一区二区| 日韩一级中文字幕| 伊人青青综合网站| 美足av综合网| 国产精品九九久久久久久久| 欧美第一在线视频| 欧美一级爱爱| 国产精品99一区二区| 999精品网站| 国产高清不卡一区| mm131丰满少妇人体欣赏图| 亚洲免费在线视频一区 二区| 亚洲图片在线视频| 欧美一区二区三区视频在线观看| 少妇激情av一区二区| 久久影院模特热| 不卡av播放| 99久久精品免费看国产四区 | 国产精品久久久久久久久久辛辛 | 欧美一级片在线看| 天堂а√在线8种子蜜桃视频| 日韩中文视频免费在线观看| 欧美男人天堂| 97av影视网在线观看| 精品免费在线| 亚洲熟妇无码另类久久久| 国模娜娜一区二区三区| 亚洲一二三精品| 欧美日韩激情小视频| 亚洲精品18在线观看| 精品国产欧美一区二区三区成人 | 欧美在线观看视频一区二区三区| 亚洲欧美强伦一区二区| 久久久久999| www.精品国产| 欧美精品在线一区| 在线国产精品一区| 欧美日韩一区二区区| 国产精品美女久久久久aⅴ国产馆| 亚洲精品午夜国产va久久成人| 日韩女优毛片在线| 免费不卡视频| 国产噜噜噜噜噜久久久久久久久| 网红女主播少妇精品视频| 国产成人永久免费视频| 国产精品一区二区无线| 国产成人免费在线观看视频| 日本高清免费不卡视频| 黄色片在线免费看| 日本韩国欧美精品大片卡二| 伦理一区二区| 激情五月宗合网| 99精品视频中文字幕| 国产一级免费av| 欧美xxxxxxxx| 国精一区二区三区| 国产99在线播放| 好看的av在线不卡观看| www.四虎精品| 亚洲成av人片在www色猫咪| 欧美视频久久久| 韩国精品美女www爽爽爽视频| 成人av地址| 欧美网站免费观看| 久久综合丝袜日本网| 秋霞精品一区二区三区| 亚洲男人天堂手机在线| 高清不卡亚洲| 日韩黄色影视| 久久精品99国产精品日本| 亚洲不卡在线播放| 日韩一区二区免费高清| 国产深夜视频在线观看| 国内不卡一区二区三区| 久久久精品性| 免费在线观看a视频| 欧美日韩成人在线一区| 在线中文字幕视频观看| 极品尤物一区二区三区| 麻豆亚洲精品| 久久久久99精品成人| 91精品福利在线一区二区三区| 日韩三级免费| 久久综合色一本| 日本aⅴ免费视频一区二区三区| 国产一二三av| 欧美一区二区三区成人| wwww亚洲| 水蜜桃亚洲精品| 国产精品一卡二卡在线观看| 日韩成人在线免费视频| 亚洲色图激情小说| 亚洲成人毛片| 自拍日韩亚洲一区在线| 亚洲国产岛国毛片在线| 亚洲国产www| 国产精品18久久久久久首页狼| 91精品久久久久久久蜜月| 99re这里只有| 精品视频999| 国产嫩草在线视频| 日韩久久在线| 高清在线成人网| 一级黄色在线视频| 欧美成人小视频| 深爱激情久久| 少妇丰满尤物大尺度写真| 色偷偷一区二区三区| 超碰公开在线| 欧美一区二区三区精美影视| 国产一区二区三区免费看| 亚洲GV成人无码久久精品| 毛片精品免费在线观看| 免费成人网www| 免费看三级黄色片|