欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android畫圖并保存圖片的具體實現代碼

 更新時間:2013年07月02日 15:02:02   作者:  
這篇文章介紹了在Android中畫圖并保存圖片的實例,以下是具體的實現方法,有需要的朋友可以參考一下
Canvas是一個畫布,你可以建立一個空白的畫布,就直接new一個Canvas對象,不需要參數。
也可以先使用BitmapFactory創(chuàng)建一個Bitmap對象,作為新的Canvas對象的參數,也就是說這個畫布不是空白的,
如果你想保存圖片的話,最好是Bitmap是一個新的,而不是從某個文件中讀入進來的,或者是Drawable對象。

然后使用Canvas畫第一張圖上去,在畫第二張圖上去,最后使用Canvas.save(int flag)的方法進行保存,注意save方法里面的參數可以保存單個圖層,
如果是保存全部圖層的 話使用 save( Canvas.ALL_SAVE_FLAG )。

最后所有的信息都會保存在第一個創(chuàng)建的Bitmap中。代碼如下:
Java代碼
復制代碼 代碼如下:

/**
    * create the bitmap from a byte array
    *
    * @param src the bitmap object you want proecss
    * @param watermark the water mark above the src
    * @return return a bitmap object ,if paramter's length is 0,return null
    */ 
   private Bitmap createBitmap( Bitmap src, Bitmap watermark ) 
   { 
       String tag = "createBitmap"; 
       Log.d( tag, "create a new bitmap" ); 
       if( src == null ) 
       { 
           return null; 
       } 

       int w = src.getWidth(); 
       int h = src.getHeight(); 
       int ww = watermark.getWidth(); 
       int wh = watermark.getHeight(); 
       //create the new blank bitmap 
       Bitmap newb = Bitmap.createBitmap( w, h, Config.ARGB_8888 );//創(chuàng)建一個新的和SRC長度寬度一樣的位圖 
       Canvas cv = new Canvas( newb ); 
       //draw src into 
       cv.drawBitmap( src, 0, 0, null );//在 0,0坐標開始畫入src 
       //draw watermark into 
       cv.drawBitmap( watermark, w - ww + 5, h - wh + 5, null );//在src的右下角畫入水印 
       //save all clip 
       cv.save( Canvas.ALL_SAVE_FLAG );//保存 
       //store 
       cv.restore();//存儲 
       return newb; 
   } 

 對圖片進行縮小的方法:
Java代碼
復制代碼 代碼如下:

/**
    * lessen the bitmap
    *
    * @param src bitmap
    * @param destWidth the dest bitmap width
    * @param destHeigth
    * @return new bitmap if successful ,oherwise null
    */ 
   private Bitmap lessenBitmap( Bitmap src, int destWidth, int destHeigth ) 
   { 
       String tag = "lessenBitmap"; 
       if( src == null ) 
       { 
           return null; 
       } 
       int w = src.getWidth();//源文件的大小 
       int h = src.getHeight(); 
       // calculate the scale - in this case = 0.4f 
       float scaleWidth = ( ( float ) destWidth ) / w;//寬度縮小比例 
       float scaleHeight = ( ( float ) destHeigth ) / h;//高度縮小比例 
       Log.d( tag, "bitmap width is :" + w ); 
       Log.d( tag, "bitmap height is :" + h ); 
       Log.d( tag, "new width is :" + destWidth ); 
       Log.d( tag, "new height is :" + destHeigth ); 
       Log.d( tag, "scale width is  :" + scaleWidth ); 
       Log.d( tag, "scale height is  :" + scaleHeight ); 
       Matrix m = new Matrix();//矩陣 
       m.postScale( scaleWidth, scaleHeight );//設置矩陣比例 
       Bitmap resizedBitmap = Bitmap.createBitmap( src, 0, 0, w, h, m, true );//直接按照矩陣的比例把源文件畫入進行 
       return resizedBitmap; 
   }

相關文章

  • 詳解Android沉浸式實現兼容解決辦法

    詳解Android沉浸式實現兼容解決辦法

    本篇文章主要介紹了詳解Android沉浸式實現兼容解決辦法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 詳解Dagger2在Android開發(fā)中的新用法

    詳解Dagger2在Android開發(fā)中的新用法

    本篇文章主要介紹了Dagger2在Android開發(fā)中的新用法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Kotlin協程之Flow觸發(fā)與消費示例解析

    Kotlin協程之Flow觸發(fā)與消費示例解析

    Kotlin協程中,當需要消費流時,會調用collect方法,觸發(fā)流的消費,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-09-09
  • Android編程之單元測試實例分析

    Android編程之單元測試實例分析

    這篇文章主要介紹了Android編程之單元測試,結合具體實例分析了Android單元測試的具體實現步驟與相關注意事項,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Android自定義TipView仿QQ長按后的提示窗口

    Android自定義TipView仿QQ長按后的提示窗口

    這篇文章主要介紹了Android自定義TipView仿QQ長按后的提示窗口,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Android組件ListView列表簡單使用

    Android組件ListView列表簡單使用

    這篇文章主要為大家詳細介紹了Android組件ListView列表的簡單使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Android仿直播特效之點贊飄心效果

    Android仿直播特效之點贊飄心效果

    這篇文章主要為大家詳細介紹了Android實現點贊飄心效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Kotlin 協程與掛起函數及suspend關鍵字深入理解

    Kotlin 協程與掛起函數及suspend關鍵字深入理解

    這篇文章主要為大家介紹了Kotlin 協程與掛起函數及suspend關鍵字深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Kotlin協程之Flow異常示例處理

    Kotlin協程之Flow異常示例處理

    這篇文章主要為大家介紹了Kotlin協程之Flow異常處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 在Android Studio中使用BaiduMap SDK實時獲取當地位置信息

    在Android Studio中使用BaiduMap SDK實時獲取當地位置信息

    這篇文章主要介紹了在Android Studio中使用BaiduMap SDK實時獲取當地位置信息 的相關資料,需要的朋友可以參考下
    2016-03-03

最新評論