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

Android Gallery實現3D相冊(附效果圖+Demo源碼)

移動開發 Android
本文主要是說說如何實現Gallery的3D顯示切換,Demo的代碼很多是基于網上一些現成效果,感謝這些分享成果的開發者。文中有Demo的下載,不清楚的可以把Demo下載下來,運行看看效果然后分析一下代碼。代碼不多,也不是很復雜。

今天因為要做一個設置開機畫面的功能,主要是讓用戶可以設置自己的開機畫面,應用層需要做讓用戶選擇開機畫面圖片的功能。所以需要做一個簡單的圖片瀏覽選擇程序。最后選用Gallery作為基本控件。加入了一些炫一點的元素,做成3D滑動效果。下面是Demo例子截圖:

 

這個效果網上已經很多人做出來了,只是這次需要用到,所以自己也實踐了一下(這里例子我也是根據網上一些資料編寫)。特意找了幾張美女圖片給大家養養眼,O(∩_∩)O哈!下面針對一些關鍵代碼進行簡要說明,需要做這方面東西的朋友可以看看。這篇文章是實用性文章,理論分析不多。

(PS:新建的QQ群,有興趣可以加入一起討論:Android群:322599434)

1、重載Gallery類

因為需要加入倒影和3D切換的效果,因此我們需要重載Gallery類,其中有兩個方法我們需要重寫,一個是onSizeChanged(),另外一個是getChildStaticTransformation()。下面我們看看onSizeChanged()需要做的事情。

  1. @Override 
  2.     protected void onSizeChanged(int w, int h, int oldw, int oldh)  
  3.     {    //重寫計算旋轉的中心 
  4.         mCoveflowCenter = getCenterOfCoverflow(); 
  5.         super.onSizeChanged(w, h, oldw, oldh); 
  6.     }  

上面主要做的事情就是在改變大小的時候,重新計算滑動切換時需要旋轉變化的中心。下面計算圖片位置時,會重新計算。

  1. protected boolean getChildStaticTransformation(View child, Transformation trans)  
  2.     {     //圖像的中心點和寬度 
  3.         final int childCenter = getCenterOfView(child); 
  4.         final int childWidth = child.getWidth(); 
  5.         int rotationAngle = 0
  6.  
  7.         trans.clear(); 
  8.         trans.setTransformationType(Transformation.TYPE_BOTH);        // alpha 和 matrix 都變換 
  9.  
  10.         if (childCenter == mCoveflowCenter)  
  11.         {            // 正中間的childView 
  12.             transformImageBitmap((ImageView) child, trans, 0);     
  13.         }  
  14.         else  
  15.         {                // 兩側的childView 
  16.             rotationAngle = (int) ( ( (float) (mCoveflowCenter - childCenter) / childWidth ) * mMaxRotationAngle ); 
  17.             if (Math.abs(rotationAngle) > mMaxRotationAngle)  
  18.             { 
  19.                 rotationAngle = (rotationAngle < 0) ? -mMaxRotationAngle : mMaxRotationAngle; 
  20.             }       //根據偏移角度對圖片進行處理,看上去有3D的效果。 
  21.             transformImageBitmap((ImageView) child, trans, rotationAngle); 
  22.         } 
  23.  
  24.         return true
  25.     } 

上面就是重載Gallery的時候,需要注意處理的事情,其實主要就是做圖形變化,效果圖里面的圖片斜著顯示就是這里處理的結果,目的就是讓人看上去有立體感。

2、編寫Adapter適配器

我們使用很多控件都涉及適配器,就是用來綁定數據源和目標控件的一個中間件。這里我們需要重載BaseAdapter作為我們Gallery的適配器。主要是處理源圖像,加入倒影,生成新的數據源圖片。

  1. public boolean createReflectedForAdapter()  
  2.     { 
  3.         final int reflectionGap = 4
  4.         final int Height = 200
  5.         int index = 0
  6.         for (Map<String, Object> map : list)  
  7.         { 
  8.             Integer id = (Integer) map.get("image"); 
  9.             // 獲取原始圖片 
  10.             Bitmap originalImage = BitmapFactory.decodeResource(mContext.getResources(), id);     
  11.             int width = originalImage.getWidth(); 
  12.             int height = originalImage.getHeight(); 
  13.             float scale = Height / (float)height; 
  14.              
  15.             Matrix sMatrix = new Matrix(); 
  16.             sMatrix.postScale(scale, scale); 
  17.             Bitmap miniBitmap = Bitmap.createBitmap(originalImage, 00
  18.                     originalImage.getWidth(), originalImage.getHeight(), sMatrix, true); 
  19.              
  20.             //是否原圖片數據,節省內存 
  21.             originalImage.recycle(); 
  22.  
  23.             int mwidth = miniBitmap.getWidth(); 
  24.             int mheight = miniBitmap.getHeight(); 
  25.             Matrix matrix = new Matrix(); 
  26.             // 圖片矩陣變換(從低部向頂部的倒影) 
  27.             matrix.preScale(1, -1);             
  28.             // 截取原圖下半部分 
  29.             Bitmap reflectionImage = Bitmap.createBitmap(miniBitmap, 0, mheight/2, mwidth, mheight/2, matrix, false); 
  30.             // 創建倒影圖片(高度為原圖3/2) 
  31.             Bitmap bitmapWithReflection = Bitmap.createBitmap(mwidth, (mheight + mheight / 2), Config.ARGB_8888);     
  32.             // 繪制倒影圖(原圖 + 間距 + 倒影) 
  33.             Canvas canvas = new Canvas(bitmapWithReflection);     
  34.             // 繪制原圖 
  35.             canvas.drawBitmap(miniBitmap, 00null);         
  36.             Paint paint = new Paint(); 
  37.             // 繪制原圖與倒影的間距 
  38.             canvas.drawRect(0, mheight, mwidth, mheight + reflectionGap, paint); 
  39.             // 繪制倒影圖 
  40.             canvas.drawBitmap(reflectionImage, 0, mheight + reflectionGap, null);     
  41.  
  42.             paint = new Paint(); 
  43.             // 線性漸變效果 
  44.             LinearGradient shader = new LinearGradient(0, miniBitmap.getHeight(), 0, bitmapWithReflection.getHeight() 
  45.                     + reflectionGap, 0x70ffffff0x00ffffff, TileMode.CLAMP); 
  46.             paint.setShader(shader);     
  47.             // 倒影遮罩效果 
  48.             paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));         
  49.             // 繪制倒影的陰影效果 
  50.             canvas.drawRect(0, mheight, mwidth, bitmapWithReflection.getHeight() + reflectionGap, paint);         
  51.             ImageView imageView = new ImageView(mContext);        // 設置倒影圖片 
  52.             imageView.setImageBitmap(bitmapWithReflection);         
  53.             imageView.setLayoutParams(new GalleryView.LayoutParams((int)(width * scale), 
  54.                     (int)(mheight * 3 / 2.0 + reflectionGap))); 
  55.             imageView.setScaleType(ScaleType.MATRIX); 
  56.             mImages[index++] = imageView; 
  57.         } 
  58.         return true
  59.     } 

 

上面其實就是一個圖片處理過程,主要做的事情就是生成倒影,效果圖里面底下是有倒影的。就是利用上面算法生成。我們在適配器添加圖片的時候,會把適配器原生圖片進行處理,加入倒影的效果。這個我們在圖片初始化的時候就可以調用處理,具體代碼可以查看Demo里面的代碼關系。

具體圖片滑動的過程,Gallery會幫我們處理好,我們要做的事情其實就是提供添加了特效的圖片數據源,以及處理3D顯示的變化效果,最后都會提供View作為顯示圖像給Gallery用來顯示。

今天主要是說說如何實現Gallery的3D顯示切換,Demo的代碼很多是基于網上一些現成效果,感謝這些分享成果的開發者。下面是Demo的下載,不清楚的可以把Demo下載下來,運行看看效果然后分析一下代碼。代碼不多,也不是很復雜。

Gallery3D例子代碼:Grallery3DTest2013-7-19.rar

責任編輯:閆佳明 來源: cnblogs
相關推薦

2010-06-09 10:13:40

OpenSUSE 3D

2021-09-16 07:52:18

SwiftUScroll效果

2022-09-19 19:16:42

輪播圖has

2023-05-26 07:08:05

CSS模糊實現文字

2025-05-29 06:48:51

前端偽3D

2021-08-30 06:20:39

CSS 技巧3D 效果

2010-06-09 16:21:10

OpenSUSE界面

2013-06-25 11:21:35

Android開發幻燈片效果Gallery

2012-07-18 20:59:40

jQuery

2009-05-13 08:13:37

SUSELinux 10.3Nvidia

2011-09-07 10:00:53

Ubuntu3D

2010-01-04 15:17:52

Ubuntu啟動

2021-11-08 06:02:17

CSS 技巧代碼重構

2009-04-03 08:33:59

Symbian諾基亞Photo Brows

2011-09-22 10:07:52

奧圖碼投影儀

2011-12-21 12:46:43

2013-01-30 16:15:40

adobeHTML5css3

2012-06-16 16:57:52

WebGL

2012-02-27 10:00:50

HTML 5
點贊
收藏

51CTO技術棧公眾號

欧美一级免费播放| 国产精品一区二区欧美| jizz亚洲少妇| 久久影院资源站| 欧洲一区在线电影| 国产一二三四五| 免费黄网站在线观看| 美女视频黄免费的久久 | 92国产精品视频| 日韩成人免费观看| 99tv成人| 亚洲免费高清视频| 岛国av免费在线| 色吧亚洲日本| 亚洲品质自拍视频| 欧美连裤袜在线视频| 国产情侣自拍小视频| 久久久久久穴| 欧美高清一级大片| 婷婷综合在线视频| 亚洲午夜久久| 精品福利在线导航| 粉色视频免费看| 日韩pacopacomama| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲国产日韩美| 无码国产精品高潮久久99| 激情欧美一区二区| 国产精品欧美风情| 六月丁香激情综合| 亚洲精品影视| 欧美疯狂做受xxxx高潮| 国产wwwwxxxx| 日韩欧美在线中字| 亚洲色图美腿丝袜| 黄色短视频在线观看| 免费精品一区| 91精品国产综合久久久久久久久久 | 国产精品av一区| 国产精品伦理一区| 蜜桃视频在线观看一区二区| 日韩女在线观看| 91精品国产乱码久久久张津瑜| 伊人青青综合网| 精品激情国产视频| 免费黄色国产视频| 色综合咪咪久久网| 正在播放欧美视频| 摸摸摸bbb毛毛毛片| 免费毛片在线不卡| 亚洲欧美日韩中文视频| 久久精品老司机| 色狼人综合干| 亚洲毛片一区二区| 大又大又粗又硬又爽少妇毛片| 欧美在线导航| 亚洲精品午夜精品| 国产全是老熟女太爽了| 国产欧美日韩精品一区二区三区| 亚洲人成毛片在线播放| 一区二区精品免费| 欧洲乱码伦视频免费| 一区二区三区四区精品| 日本一道本视频| 99精品视频在线观看播放| 色偷偷888欧美精品久久久| 四虎884aa成人精品| 亚洲色图国产| 久久久久九九九九| 人人爽人人爽人人片av| 免费看欧美女人艹b| 成人激情视频在线| 亚洲国产剧情在线观看| www.亚洲人| 欧美日韩一区在线观看视频| h网站在线免费观看| 亚洲欧洲精品一区二区精品久久久| 伊人久久大香线蕉精品| 呦呦在线视频| 一本一道久久a久久精品综合蜜臀| 久久久久久久久久久久久久国产| 国产激情欧美| 欧美videos大乳护士334| www.自拍偷拍| 天天综合网91| 久久久午夜视频| 色老头在线视频| 国产一区二区网址| 精品在线观看一区二区| 91在线网址| 亚洲成国产人片在线观看| 中文字幕日本最新乱码视频| 久久夜夜久久| 亚洲精品久久久久久久久| 国产探花视频在线播放| 欧美日韩伊人| 国产精品久久网| 亚洲精品911| 国产婷婷色一区二区三区四区 | 黄色网页在线免费看| 亚洲亚洲精品在线观看| 欧美日韩在线成人| 6080亚洲理论片在线观看| 亚洲色图五月天| 亚洲国产精品免费在线观看| 亚洲影视综合| 亚洲mm色国产网站| 精品无吗乱吗av国产爱色| 亚洲乱码中文字幕综合| 青青青在线视频免费观看| 亚洲超碰在线观看| 自拍偷拍亚洲区| 久久99精品波多结衣一区| 国产伦精品一区二区三区免费| 欧美日产一区二区三区在线观看| 亚洲人高潮女人毛茸茸| 久青草免费视频| 国产在线精品一区二区夜色 | 国产在线999| 日本国产在线| 亚洲成人av电影在线| 国产毛片久久久久久| 日韩片欧美片| 日韩av电影手机在线观看| 高h放荡受浪受bl| 亚洲特级片在线| 亚洲不卡视频在线| 免费看成人哺乳视频网站| 久久久亚洲精选| 性做久久久久久久久久| 综合精品久久久| 黑人粗进入欧美aaaaa| 伊人久久大香| 中文字幕在线日韩| 黄色网址中文字幕| 久久久久久99久久久精品网站| 日韩精品视频在线观看视频| 久久视频免费| 久久久精品国产一区二区| 亚洲特级黄色片| 国产精品无人区| 在线免费视频a| 国际精品欧美精品| 国产z一区二区三区| 日本五码在线| 色婷婷久久一区二区三区麻豆| 91久久免费视频| 日韩综合一区二区| 日韩欧美精品一区二区三区经典| 天天综合网站| 国产一区二区三区中文| 在线观看不卡的av| 亚洲视频香蕉人妖| 色婷婷综合在线观看| 中文无码久久精品| 91成人免费观看| 波多野结衣在线播放| 日韩成人中文字幕在线观看| 啦啦啦免费高清视频在线观看| 91看片淫黄大片一级在线观看| av免费中文字幕| 欧美日韩一二| 成人黄色在线播放| 精精国产xxxx视频在线中文版| 亚洲精品一区二区三区精华液| 日本在线视频中文字幕| 成人免费视频app| 日韩在线综合网| 不卡av一区二区| 成人免费黄色网| 羞羞视频在线观看不卡| 亚洲电影免费观看高清完整版在线观看| 国产精选第一页| 久久久久青草大香线综合精品| 爆乳熟妇一区二区三区霸乳| 91精品国产福利在线观看麻豆| 99久久一区三区四区免费| 国产不卡123| 国产亚洲精品久久久久久| 国产乱码精品一区二三区蜜臂| 亚洲国产精品久久久久婷婷884| 黄色录像a级片| 免费看日韩精品| 蜜桃视频一区二区在线观看| 欧美色资源站| 国产噜噜噜噜噜久久久久久久久| 日本动漫同人动漫在线观看| 亚洲精品自拍偷拍| 亚洲天堂中文在线| 亚洲成在人线在线播放| 日韩女同一区二区三区| 国产成人自拍网| 无码少妇一区二区三区芒果| 伊人青青综合网| 欧美日本亚洲| 99久久婷婷国产综合精品青牛牛| 国产91九色视频| 日韩精品分区| 在线视频精品一| 日韩一区二区三区在线观看视频| 欧美亚洲国产一区二区三区va| 69av.com| 久久久久久久电影| 一级黄色免费视频| 美女高潮久久久| 欧美 日韩 国产 高清| 亚洲免费二区| 欧美日韩亚洲一区二区三区四区| 久久视频免费| 国产精品久久久久不卡| 日本а中文在线天堂| 美女扒开尿口让男人操亚洲视频网站| 三级毛片在线免费看| 欧美成人午夜电影| 一本久道久久综合无码中文| 欧美性少妇18aaaa视频| 九九精品在线观看视频| 国产精品久久久爽爽爽麻豆色哟哟| 中文字幕日韩三级片| 国产一区二区三区久久久| 日韩中文字幕组| 99精品国产在热久久婷婷| 狠狠干视频网站| a级黄色小视频| 国产美女高潮视频| 国产精品一区二区中文字幕| 国产成人自拍视频在线观看| 美女精品导航| 久久精品亚洲精品| 亚洲s色大片| 伊人一区二区三区久久精品| 欧美女同网站| 亚洲精品乱码久久久久久按摩观| www.久久久久久久久久| 欧美日韩精品一区视频| 国产精品无码粉嫩小泬| 欧美日韩免费区域视频在线观看| 久久免费少妇高潮99精品| 亚洲免费av高清| 天堂网中文在线观看| 国产精品日日摸夜夜摸av| 国产一区二区三区四区五区六区| 91在线观看下载| 日韩精品视频一区二区| 成人手机电影网| 欧美熟妇精品一区二区| 高清国产一区二区三区| 国偷自产av一区二区三区麻豆| 精品一区二区三区久久| 91丝袜超薄交口足| 国产乱妇无码大片在线观看| 免费黄频在线观看| 国产精品一品二品| 香蕉视频xxx| 国产不卡视频一区| 中文字幕在线观看91| 99热99精品| 黄色在线观看av| 国产欧美一区二区精品忘忧草| 日本高清黄色片| 中文字幕在线观看不卡| 免费中文字幕在线| 亚洲风情在线资源站| 久久久久久少妇| 色999日韩国产欧美一区二区| 青青艹在线观看| 欧美精品99久久久**| 亚洲AV无码精品国产| 亚洲黄色www网站| 成人亚洲综合天堂| 久久婷婷国产麻豆91天堂| 欧美人与动牲性行为| 国内精品在线一区| 久久亚洲精品爱爱| 114国产精品久久免费观看| 黄色欧美网站| 日本一区二区在线| 91精品国产91久久久久久黑人| 国产精品久久久久9999爆乳| 久久亚洲风情| 色婷婷一区二区三区在线观看| av在线一区二区| x88av在线| 亚洲最大的成人av| 日韩欧美国产另类| 日韩精品一区二区三区中文精品 | 国产高潮在线| 国产精品7m视频| 日韩一区网站| 欧美中文娱乐网| 在线国产一区| 日韩视频免费在线播放| 国产福利精品一区二区| 熟女高潮一区二区三区| 亚洲麻豆国产自偷在线| 在线观看 亚洲| 日韩一区二区免费高清| 国产精品视频二区三区| 久久999免费视频| av在线一区不卡| 国产一区二区三区免费不卡| 久久裸体网站| 国产九九九九九| 精品无人区卡一卡二卡三乱码免费卡| xxxx黄色片| 亚洲视频一二三区| 无码人妻精品一区二区三区9厂| 日韩无一区二区| 最新电影电视剧在线观看免费观看| 国模视频一区二区| 999精品嫩草久久久久久99| 牛人盗摄一区二区三区视频| 欧美 日韩 国产一区二区在线视频 | 国产写真视频在线观看| 国产成人综合精品| 欧美天堂影院| 黄色成人在线免费观看| 国内精品免费在线观看| 成人性视频免费看| 色综合天天做天天爱| 嫩草影院一区二区| 欧美xxxx14xxxxx性爽| 日韩视频网站在线观看| 好吊妞www.84com只有这里才有精品| 2023国产精品久久久精品双| 日本www.色| 久久综合九色综合欧美98| 久久久.www| 日韩免费在线观看| av毛片在线| 成人在线播放av| 91欧美在线| 在线黄色免费观看| 中日韩免费视频中文字幕| 日韩精品一区二区亚洲av观看| 日韩精品欧美激情| 亚洲一区资源| 欧美日韩国产免费一区二区三区| 亚洲美女一区| 亚洲第九十七页| 日韩欧美高清视频| 久久电影中文字幕| 国产成人综合精品在线| 欧美一区二区麻豆红桃视频| 成人一级片网站| 国产日韩亚洲欧美综合| 夜夜躁日日躁狠狠久久av| 亚洲色图13p| 国产麻豆久久| 亚洲一区二区三区精品动漫| 美国一区二区三区在线播放 | 午夜视频一区二区三区| 欧美一级淫片aaaaaa| 91av视频导航| 久久不见久久见中文字幕免费| 91香蕉视频污版| 国产精品毛片久久久久久| 一区二区三区精| 蜜臀久久99精品久久久久久宅男| gogo人体一区| 国产一区二区在线视频播放| www激情久久| 国产日韩在线免费观看| 久久国产精品99国产精| 亚洲日本视频在线| www国产黄色| 国产精品免费视频观看| 国产精品人人爽| 久久久久久久国产| 日韩a级大片| 亚洲欧美自偷自拍另类| 亚洲乱码中文字幕| 色呦呦中文字幕| 人人爽久久涩噜噜噜网站| 日韩系列欧美系列| 日本少妇xxx| 欧美日韩一区二区免费在线观看 | 亚洲欧美日韩中文字幕一区二区三区 | 久久九九精品| 国产男女猛烈无遮挡在线喷水| 精品国产乱子伦一区| 久久精品女人天堂av免费观看 | xxx.xxx欧美| 欧美一区二区三区成人久久片| 国产在线精品一区二区| 中文字幕在线字幕中文| 色悠悠久久久久| 欧美激情15p| 三级av免费看| 色婷婷av一区二区三区软件| 国产日产一区二区三区| 欧美日韩国产高清视频| 激情成人综合网| 性无码专区无码| 久久电影一区二区| 宅男在线一区| 日本国产在线视频| 欧美日韩一区国产| 自拍视频在线看| 成人高清dvd|