精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

日韩一级免费视频| 久久久久人妻一区精品色| √8天堂资源地址中文在线| 处破女av一区二区| 日本中文字幕久久看| 久久久久久久久福利| 精品视频一区二区三区在线观看| 黄网动漫久久久| 亚洲日本精品一区| 欧美性猛交 xxxx| 日韩电影免费在线| 欧美激情第三页| 亚洲永久精品ww.7491进入| 国产免费区一区二区三视频免费| 黄色一区二区在线| 香蕉视频在线网址| 日本一二三区在线视频| 国产在线精品一区二区夜色| 57pao精品| 精品自拍偷拍视频| 欧洲乱码伦视频免费| 日韩精品一区二区三区视频 | 亚洲精品国产一区黑色丝袜| 久久伦理中文字幕| 色婷婷国产精品| 久久久99精品视频| 大地资源中文在线观看免费版| 国产成人无遮挡在线视频| 日韩美女中文字幕| 国产网友自拍视频| 国产国产精品| 在线精品91av| 国产精品高清无码在线观看| 麻豆精品少妇| 精品少妇一区二区三区在线播放| 亚洲a级黄色片| 日本精品不卡| 狠狠躁夜夜躁人人躁婷婷91| 欧美日韩视频免费在线观看| 成人在线播放视频| 91亚洲男人天堂| 国产精品区一区二区三含羞草| 国产强被迫伦姧在线观看无码| 久久精品99久久久| 国产精品久久综合av爱欲tv| 草莓视频18免费观看| 久久高清一区| 国产97在线|日韩| 99精品人妻国产毛片| 亚洲精品美女| 97精品国产97久久久久久春色| 久久亚洲av午夜福利精品一区| 我不卡影院28| 久久艳片www.17c.com| 三级黄色在线观看| 欧美丰满日韩| 久久婷婷国产麻豆91天堂| 一本一本久久a久久| 色婷婷亚洲mv天堂mv在影片| 在线国产精品播放| 日韩一区二区三区四区视频| 色777狠狠狠综合伊人| 久久精品视频免费播放| 私库av在线播放| 亚洲视频一二| 奇米四色中文综合久久| 成人a v视频| 免费视频最近日韩| 91日本在线视频| 精品人妻一区二区三区三区四区| 国产成都精品91一区二区三| 国产在线一区二区三区播放| 黄色毛片在线看| 亚洲欧洲国产日韩| 青青草综合在线| 成人在线高清免费| 日韩欧美视频一区二区三区| 国产一级做a爰片久久| 色8久久久久| 亚洲第一区第一页| 蜜桃av免费看| 香蕉av一区二区| 韩剧1988免费观看全集| 国产91国语对白在线| 精品一区二区三区的国产在线播放 | 亚洲伊人av| 欧美日韩综合在线| 黑人性生活视频| 日韩大片在线免费观看| 伊人精品在线观看| 青青草偷拍视频| 欧美一区=区| 成人久久久久久| 婷婷五月综合久久中文字幕| 国产片一区二区| 国产激情片在线观看| 美女的胸无遮挡在线观看| 欧美性生活影院| 欧美激情一区二区三区p站| 国产videos久久| 欧美激情精品久久久久久| 亚洲色成人www永久网站| 国产精品资源在线看| 欧美日韩亚洲在线| 在线观看操人| 欧美亚洲国产怡红院影院| 中文字幕永久免费| 色爱综合网欧美| 国产91成人video| av免费观看在线| 国产亲近乱来精品视频 | 国产精品一区毛片| 亚洲va欧美va国产综合久久| 精品视频三区| 亚洲h精品动漫在线观看| 中文字幕免费高清在线| 亚洲欧美tv| 久久久久久久久久久免费| 国产精品久久久久久久久毛片 | 欧洲一区二区在线| 丁香高清在线观看完整电影视频| 欧美精品日韩精品| 人妻aⅴ无码一区二区三区 | 456亚洲影院| 性欧美videos另类hd| 国产精品人成在线观看免费 | 日韩精品电影网站| 99在线视频影院| 91精品国产入口在线| 国产精品无码无卡无需播放器| 在线亚洲自拍| 国产一区二区在线网站| 牛牛精品在线视频| 91精选在线观看| 少妇视频一区二区| 美女视频第一区二区三区免费观看网站| 精品视频第一区| 成人免费一区二区三区牛牛| 欧美白人最猛性xxxxx69交| 天堂а√在线中文在线鲁大师| 日韩国产精品久久| 人禽交欧美网站免费| 欧美www.| 最新国产精品拍自在线播放| 国产精品午夜一区二区| 国产午夜亚洲精品午夜鲁丝片 | 久久机热这里只有精品| 国精产品一区一区三区mba视频| 亚洲欧洲国产精品久久| 国产精品麻豆成人av电影艾秋| 一区二区三区视频观看| 成人黄色片在线观看| 国产农村妇女精品| 国产一级做a爰片久久| 成人av资源电影网站| 国产精品网址在线| 欧美另类极品| 欧美一卡2卡3卡4卡| 永久免费看黄网站| 高清国产一区二区| 国产成人无码精品久久久性色| 欧洲精品一区| 国产成人亚洲综合91精品| aiai在线| 欧美一级免费观看| 日本三级欧美三级| 久久久久久99久久久精品网站| 国产wwwxx| 最新国产精品久久久| 国产精品露出视频| 性欧美18xxxhd| 在线日韩精品视频| 91好色先生tv| 亚洲国产欧美在线人成| 欧美多人猛交狂配| 麻豆精品久久久| 日韩欧美视频免费在线观看| 精品视频自拍| 国产aaa精品| 日本精品在线| 亚洲电影在线看| 免费黄色小视频在线观看| 日韩美女视频19| 日本一区二区在线免费观看| 老司机免费视频久久| 一区二区三区国| gogo人体一区| 国产极品精品在线观看| h网站久久久| 亚洲精品国产suv| 中文字幕日韩第一页| 一区二区三区成人| 国产激情av在线| 粉嫩嫩av羞羞动漫久久久 | 亚洲精美视频| 成人中文字幕视频| 国产狼人综合免费视频| 96av在线| 不用播放器成人网| 日本电影一区二区在线观看| 91精品国产麻豆国产自产在线 | 爱啪视频在线观看视频免费| 中文字幕亚洲欧美一区二区三区| 亚洲男人第一天堂| 欧美精品九九99久久| 中文字幕第四页| 亚洲精品乱码久久久久久日本蜜臀| 无码熟妇人妻av| 国产成人精品一区二| 亚洲精品久久久中文字幕| 亚洲精品综合| 超级碰在线观看| 日本不卡电影| 就去色蜜桃综合| av成人综合| 91夜夜未满十八勿入爽爽影院 | 国产日韩一区二区三区在线播放| 亚洲一区二区三区精品在线观看| 婷婷亚洲精品| 国产精品久久久久久久久久直播 | 国产+成+人+亚洲欧洲自线| 日本成人在线免费视频| 国内精品福利| 日韩人妻精品一区二区三区| 成人av国产| 日韩精品一线二线三线| 亚洲欧洲免费| 精品久久中出| a级日韩大片| 成人欧美一区二区三区视频| 亚洲91在线| 国产精品视频公开费视频| 久久sese| 国产99久久精品一区二区| 国产99在线| 午夜欧美不卡精品aaaaa| 欧美韩日亚洲| 欧美高跟鞋交xxxxhd| a级片国产精品自在拍在线播放| 久久精品国产2020观看福利| 97超碰人人在线| 中文字幕国产精品| jizz日韩| 色yeye香蕉凹凸一区二区av| 夜级特黄日本大片_在线| 一区二区三区视频免费| 91网在线播放| 久久久www成人免费精品张筱雨 | 国产精品麻豆99久久久久久| 色噜噜噜噜噜噜| 国产精品久久久久婷婷| 欧美一区二区三区观看| 国产精品白丝在线| 国产男女猛烈无遮挡在线喷水| 亚洲色图在线播放| 精品99久久久久成人网站免费| 亚洲国产婷婷综合在线精品| 日本天堂在线视频| 精品高清一区二区三区| 午夜影院在线看| 91国产福利在线| 一卡二卡三卡在线| 日韩一区二区在线播放| 亚洲精品一区二区口爆| 亚洲第一视频网站| 毛片网站在线观看| www.日韩视频| 国产网红女主播精品视频| 国产91精品久久久| 素人一区二区三区| 亚洲iv一区二区三区| 99久久婷婷国产综合精品青牛牛 | 日韩女优在线视频| 91影院在线免费观看| 手机毛片在线观看| 亚洲欧美视频在线观看视频| 日本中文字幕网| 91国偷自产一区二区三区成为亚洲经典| 亚洲一区在线观| 精品毛片乱码1区2区3区| 视频一区二区在线播放| 深夜福利一区二区| 黑人精品视频| 国产精品成人v| 精品国产亚洲一区二区三区大结局 | 午夜免费在线观看精品视频| gogo亚洲高清大胆美女人体 | 成人性生交大片免费看中文视频| 欧美日韩国产不卡在线看| 国产精品不卡| 日韩五码在线观看| 久久精品国产色蜜蜜麻豆| 一区二区三区四区影院| 日本一区二区成人| 久久久久久久极品内射| 欧美亚洲丝袜传媒另类| 老司机午夜福利视频| 最近2019中文字幕大全第二页| 国产亚av手机在线观看| 国产精品久久久久久av下载红粉| 99re8这里有精品热视频免费| 日本视频一区在线观看| 国户精品久久久久久久久久久不卡| 美女网站视频黄色| 99精品桃花视频在线观看| 久久国产波多野结衣| 一本久道久久综合中文字幕| 国产偷拍一区二区| 伊人久久久久久久久久久久久| 丁香花在线高清完整版视频 | 一区二区国产欧美| 日韩高清av一区二区三区| 黄色网页网址在线免费| 国产成人精品在线| 国产亚洲精品美女久久| 黄色污污在线观看| 蜜臀av一区二区| www.色多多| 亚洲成a人片在线不卡一二三区 | 一区二区在线中文字幕电影视频| 国产一区白浆| 粗大的内捧猛烈进出视频| 国产精品久久久久一区| a片在线免费观看| 亚洲欧美日韩国产中文| 美足av综合网| 97在线资源站| 中文字幕一区二区三区久久网站| 一级特黄性色生活片| 久久婷婷色综合| 欧美三级午夜理伦| 亚洲精品国产品国语在线| 欧美午夜大胆人体| 99爱精品视频| 国内自拍一区| 亚洲精品无码一区二区| 亚洲激情第一区| 国产成人精品一区二区无码呦| 久久久av一区| 欧美日韩午夜电影网| 六月婷婷激情网| 国产乱码精品一区二区三区av| 天天色天天综合| 在线综合视频播放| 婷婷丁香在线| 国产另类自拍| 中国女人久久久| 国产亚洲无码精品| 欧美午夜美女看片| 黄色大片在线看| 国产精品视频大全| 91精品国产视频| 男人的天堂免费| 亚洲午夜一区二区| 无码国产伦一区二区三区视频| 欧美亚洲另类在线| 国产精品探花在线观看| 国产超碰在线播放| 亚洲视频中文字幕| 性色av蜜臀av| 97婷婷涩涩精品一区| 最新国产一区| 999精品视频在线| 亚洲欧美视频在线观看视频| 亚洲国产精品国自产拍久久| 久久久久久久影院| 夜色77av精品影院| 国产成人黄色网址| 亚洲色图一区二区| 日本成人动漫在线观看| 日韩av电影院| 999视频精品| 天天躁日日躁狠狠躁av| 色综合久久天天| free性欧美hd另类精品| 国产区日韩欧美| 日本系列欧美系列| 青青草国产在线观看| 日韩高清av一区二区三区| 久久精品国产福利| 91亚洲精品国产| 久久久一区二区三区捆绑**| 国产乱淫片视频| 2024亚洲男人天堂| 911精品美国片911久久久| 亚洲第一黄色网址| 欧美日韩不卡视频| 国产在线美女| 最新欧美日韩亚洲| 91在线视频网址| 国产精品久久久久久免费 | 日本中文字幕在线免费观看| 亚洲无亚洲人成网站77777| 欧美成人精品一级| 久久久久久久久久久久久久国产| 自拍偷自拍亚洲精品播放| 日本天堂影院在线视频| 亚洲一区二区免费在线| 久久综合伊人| 五月天综合在线|