1. 程式人生 > >Android Gallery實現3D相簿(附效果圖+Demo原始碼)

Android Gallery實現3D相簿(附效果圖+Demo原始碼)

   public boolean createReflectedForAdapter() 
    {
        final int reflectionGap = 4;
        final int Height = 200;
        int index = 0;
        for (Map<String, Object> map : list) 
        {
            Integer id = (Integer) map.get("image");
            // 獲取原始圖片
            Bitmap originalImage = BitmapFactory.decodeResource(mContext.getResources(), id);    
            
int width = originalImage.getWidth(); int height = originalImage.getHeight(); float scale = Height / (float)height; Matrix sMatrix = new Matrix(); sMatrix.postScale(scale, scale); Bitmap miniBitmap = Bitmap.createBitmap(originalImage, 0
, 0, originalImage.getWidth(), originalImage.getHeight(), sMatrix, true); //是否原圖片資料,節省記憶體 originalImage.recycle(); int mwidth = miniBitmap.getWidth(); int mheight = miniBitmap.getHeight(); Matrix matrix
= new Matrix(); // 圖片矩陣變換(從低部向頂部的倒影) matrix.preScale(1, -1); // 擷取原圖下半部分 Bitmap reflectionImage = Bitmap.createBitmap(miniBitmap, 0, mheight/2, mwidth, mheight/2, matrix, false); // 建立倒影圖片(高度為原圖3/2) Bitmap bitmapWithReflection = Bitmap.createBitmap(mwidth, (mheight + mheight / 2), Config.ARGB_8888); // 繪製倒影圖(原圖 + 間距 + 倒影) Canvas canvas = new Canvas(bitmapWithReflection); // 繪製原圖 canvas.drawBitmap(miniBitmap, 0, 0, null); Paint paint = new Paint(); // 繪製原圖與倒影的間距 canvas.drawRect(0, mheight, mwidth, mheight + reflectionGap, paint); // 繪製倒影圖 canvas.drawBitmap(reflectionImage, 0, mheight + reflectionGap, null); paint = new Paint(); // 線性漸變效果 LinearGradient shader = new LinearGradient(0, miniBitmap.getHeight(), 0, bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, TileMode.CLAMP); paint.setShader(shader); // 倒影遮罩效果 paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); // 繪製倒影的陰影效果 canvas.drawRect(0, mheight, mwidth, bitmapWithReflection.getHeight() + reflectionGap, paint); ImageView imageView = new ImageView(mContext);
       // 設定倒影圖片 imageView.setImageBitmap(bitmapWithReflection);
imageView.setLayoutParams(new GalleryView.LayoutParams((int)(width * scale), (int)(mheight * 3 / 2.0 + reflectionGap))); imageView.setScaleType(ScaleType.MATRIX); mImages[index++] = imageView; } return true; }

相關推薦

Android Gallery實現3D相簿(效果圖+Demo原始碼)

public boolean createReflectedForAdapter() { final int reflectionGap = 4; final int Height = 200; int index = 0;

Android實現StickyNavLayout自己的小demo

借鑑洪洋大神StickyNavLayout的demo加入自己的註解,方便以後查閱。 一.思緒整理: 1.要實現控制元件經包含的可滑動的view向上滑去使得頭部隱藏,下面包含的view固定。拿到需求的第一想法是用scrollview去做,要這樣的話可能要解決滑動的衝突的問題。

Android探索之旅(第十四篇)Android實現炫酷效果的Demo(持續收錄中......)

浪起來!使用 drawBitmapMesh 實現模擬水波紋效果 簡書傳送門 三十秒實現QQ首頁動畫特效 BMoveView為RadioGroup新增移動的特

android camera 實現3d效果

效果圖 其中 圖片使用ImageView來展示        50下邊其實是個文字框        變形:按鈕,點選後 將圖片沿著Y軸 旋轉文字框 指定的角度。 實現的程式碼很簡單: public class Base3dImp extends Acti

Gradle Android最新自動化編譯指令碼教程(提供demo原始碼)

一、前言Gradle 是以 Groovy 語言為基礎,面向Java應用為主。基於DSL(領域特定語言)語法的自動化構建工具。上面這句話我覺得寫得很官方,大家只需知道Gradle可以用來android開發中進行多個專案依賴的自動化編譯指令碼,知道這點也就知道我們使用它的目的;為

《物聯網框架ServerSuperIO教程》-21.終端控制感測器或裝置,形成迴路控制。demo原始碼

21.1     概述      ServerSuperIO以前所做的工作逐步為形成迴路控制或級聯控制打下基礎,例如:服務聯結器和裝置驅動聯結器的開發與應用。總之,是通過多種形式下發命令控制裝置(驅動)或感測器,雲端控制站點或監測點的感測器、App或者其他終端控制感測器、根據感測器的採集資料控制另一個感測器

JS日曆控制元件集合----效果圖原始碼

在進行開發的過程中,經常需要輸入時間,特別是在進行查詢、統計的時候,時間限定更為重要。       儘管ASP.NET也集成了日曆控制元件,但是其整合的程式碼量很大,你可以做一個測試,當你在頁面使用一個日曆控制元件時,在釋出之後檢視該頁面的原始碼,你會驚奇發現,日曆控制元件

實現語音視訊錄製(demo原始碼

public class VideoFileMaker :IDisposable { /// <summary> /// 初始化視訊檔案。 /// </summary> /// <param nam

Android Studio使用Gradle實現自動打包,簽名,自定義apk檔名,多渠道打包,整合系統簽名證書【效果圖原始碼

        接觸Android Stuidio有一陣子了,之前用的時候有很多小問題,不過現在的版本感覺已經很好用了,所以準備徹底從Eclipse轉戰Android Stuidio,這段時間把以前經常使用的公用庫都從Eclipse移植過來了,今天研究了一下在Andro

android 融雲 + 科大訊飛 實現仿微信語音訊息轉換為文字(DEMO原始碼

融雲SDK 使用很方便,簡單配置就可以搭建即時通訊功能,配合科大訊飛的語音識別, 即可實現微信中語音訊息轉換為文字的功能 融雲sdk的基本使用就不細說了, 網上很多資料 使用融雲sdk自帶的聊天會話介面,想要在此會話介面上增加語音訊息長按時彈出 “轉換為文

React Native呼叫Android原生程式碼實現車牌識別功能【效果圖原始碼

        這段時間研究了下React Native,Facebook推出的,結合了Web應用和Native應用的優勢,可以使用JavaScript來開發iOS和Android原生應用,決定簡單研究下,於是開始搭建環境,編寫HelloWorld,完成後又覺得HelloWo

Android自定義錄影(一)之錄影功能實現(demo原始碼)

引言 最近在做一個專案,是有關用手機攝像頭做影象實時識別的。所以裡面需要自定義一個錄影功能。該demo實現了錄影和錄影後文件的儲存檢視,錄影會實時自動對焦(AutoFocus)。根據功能分兩篇講述。這第一篇講述錄影基本實現思路和需要注意的點。後面附有githu

Android 3D畫廊採用Gallery實現無限迴圈、自動輪播

公司最近有一個需求,是打算做一個輪播圖的展示介面,不過和傳統意義上不同,並非是在手機app的頂部展示幾張定時切換的固定大小寬高的圖片,而是中間長方形,兩邊向裡傾斜,形成對稱感的特殊介面,如下圖: 需要實現功能:無限迴圈,自動跳轉,倒影效果。 (原本的企劃是動畫輪播的時候,

Android模糊演示樣例-RenderScript-效果圖與代碼

tracking _id pro out 依據 tree 部分 observe scrip 本文鏈接 http://blog.csdn.net/xiaodongrush/article/details/31031411 參考鏈接 Android高級模糊

Android 音視頻深入 十六 FFmpeg 推流手機攝像頭,實現直播 (源碼下載)

音視頻 FFmpeg RTMP 直播 Android 源碼地址https://github.com/979451341/RtmpCamera/tree/master 配置RMTP服務器,雖然之前說了,這裏就直接粘貼過來吧 1.配置RTMP服務器 這個我不多說貼兩個博客分別是在mac和win

微信小程序之輪播圖的實現效果圖和源碼)

class git 源代碼 nload car 源碼 github項目 小程序 swiper 不管是做APP開發還是小程序,移動端離不開輪播圖的功能,下面就寫一個小程序的輪播圖功能分享給大家 效果圖: step1:頁面index.wxml代碼 <!--index.w

Android 7.1.1 之實現 3D Touch

轉載請註明出處:http://blog.csdn.net/yyh352091626/article/details/68962736 Shortcut概念 具體實現 Build

Android ContentProvider實現兩個程式間資料共享demo

1、客戶端程式碼: 先實現服務端 SQL建立: public class DBHelper extends SQLiteOpenHelper { // 資料庫名 private static final String DATABASE_NAME = "finch.db"

Android 二維碼 生成和識別(Demo原始碼

  今天講一下目前移動領域很常用的技術——二維碼。現在大街小巷、各大網站都有二維碼的蹤跡,不管是IOS、Android、WP都有相關支援的軟體。之前我就想了解二維碼是如何工作,最近因為工作需要使用相關技術,所以做了初步瞭解。今天主要是講解如何使用ZXing庫,生成和識別二維碼。這篇文章實用性為主,理

玩轉Android Camera開發 五 基於Google自帶演算法實時檢測人臉並繪製人臉框 網路首發 完整demo

                    本文主要介紹使用Google自帶的FaceDetectionListener進行人臉檢測,並將檢測到的人臉用矩形框繪製出來。本文程式碼基於PlayCameraV1.0.0,在Camera的open和preview流程上進行了改動。原先是放在單獨執行緒裡,這次我又把它放到