1. 程式人生 > >解決android 將vector圖片轉為 bitmap時為null的問題

解決android 將vector圖片轉為 bitmap時為null的問題

問題程式碼:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.danger_build10);

其中R.drawable.danger_build10是一個vector圖片,此程式碼在4.4上執行正常,但在5.0以上的系統會出現空指標,原因在於此本來方法不能將vector轉化為bitmap,而apk編譯時為了向下相容,會根據vector生產相應的png,而4.4的系統執行此程式碼時其實用的是png資源。這就是為什麼5.0以上會報錯,而4.4不會的原因

下面是解決辦法

private static Bitmap getBitmap
(Context context,int vectorDrawableId) { Bitmap bitmap=null; if (Build.VERSION.SDK_INT>Build.VERSION_CODES.LOLLIPOP){ Drawable vectorDrawable = context.getDrawable(vectorDrawableId); bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(), vectorDrawable.getIntrinsicHeight(),
Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); vectorDrawable.draw(canvas); }else { bitmap = BitmapFactory.decodeResource(context.getResources(), vectorDrawableId); } return bitmap; }

相關推薦

解決android vector圖片轉為 bitmapnull的問題

問題程式碼: Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.danger_build10); 其中R.drawable.danger_build10是一個vector圖片,此程

Android 上傳圖片到伺服器bitmap轉換byte[]最後轉換String

 1. //上傳圖片到伺服器         Bitmap bitmap = ………………;//得到圖片         ByteArrayOutputStream out=new ByteArrayOutputStream();         try {out.flus

解決Android加載圖片內存溢出的問題

decodeStream盡量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource來設置一張大圖,因為這些函數在完成decode後,最終都是通過java層的createBitmap來完成的,需要消耗更多內存。 因此,改用先通過Bitm

linlayout佈局轉為bitmap圖片和儲存

1.首先新建路徑 File filedirs = new File(Environment.getExternalStorageDirectory(), "/YuLin/"); if (!filedirs.exists()) { filedirs.mkdirs

Android Base64轉成Bitmap

這個問題網上的解決方式很多,但是我都使不了,這是網上的程式碼,但是我轉出來的Bitmap為空 public static Bitmap base64ToBitmap(String base64Data) { byte[] bytes = Base64.decode(base64D

Android smali檔案轉為jar包

想要將smali檔案轉成jar包,需要經過兩個步驟: 1.將smali檔案轉成dex檔案; 將smali轉dex我們需要用到smali.jar這個jar,然後在當前目錄輸入:java -jar smali.jar test/smali/ -o classes.dex 2.將dex檔案轉成

Android 本地圖片轉換Base64加密字串及根據加密串反向生成圖片

一.需求場景     某些時候,我們要傳遞圖片到伺服器端,那麼是走IO還是直接將二進位制資料流通過Base64轉碼加密後變更為字串傳遞給伺服器呢?其實兩種方式均可實現功能,而對於容量比較小的圖片,如在2MB以內的圖片來說,採用Base64加密字串傳遞的方式

解決android使用adb工具push檔案出現read-only

已開通新的部落格,後續文字都會發到新部落格 http://www.0xfree.top --- 經常在使用除錯手機或者往手機裡傳輸檔案是,會用到adb工具 adb push hostfile targetfile 但是有時會遇到這樣的問題:failed to copy hostf

命令的形式png圖片轉為eps圖片的方法

當使用LaTeX編輯論文的時候常常需要將png格式的圖片轉換為eps格式的圖片(雖然png格式的圖片也可以編譯)。 下面介紹一種不需要藉助第三方工具,只需一行命令就可以的方法。 首先要確保電腦裡已經安裝LaTeX編輯工具;  然後 Win+R 開啟執行視窗,然後輸入cmd,開啟cm

androidLinearLayout中的內容儲存Bitmap

前幾天,和別人探討問題的時候,突然瞭解到還有這個功能。他是要合成LinearLayout中的多個圖片,如果圖片合成,就很麻煩,所以直接儲存一個LinearLayout。 現在想起來,儲存LinearLayout也那樣,因為LinearLayout也是一個view,我儲存這

Android 怎麼把imageview 轉為Bitmap

今天做一個應用,新增一筆記錄到sqlite中去, 記錄中有一個欄位是一個影象,在新增介面中我用的是imageview控制元件,點選彈出一個對話方塊,列出可供選擇的影象,單擊選擇,但是提交後圖像顯示不正確,只顯示一個黑框,我的程式碼是這樣的 Java程式碼&nb

解決spingMVC引數傳回jsp頁面中文亂碼

解決spingMVC將引數傳回jsp頁面時中文亂碼 今天寫springmvc練手例子的時候將引數送回jsp頁面時中文出現亂碼,如下: 在web.xm加入一個過濾器重新執行一下就可以了 <!-- Spring字符集過濾器 --> <filter

解決Android 中ScrollView拉到盡頭再拉的頂部和底部的陰影效果

在做專案時採用*RecyclerView*產生*ListView*.和*GridView* 的特效,時發現上下拉取到底部、頂部會帶陰影的效果,就感覺不好看。 一、刪除android ScrollV

【libs】解決android同時使用多個library的問題

情景: 在專案引用多個可專案時,多個專案都有對support.v4.jar的引用,報了類似一下錯誤 log: Found 3 versions of android-support-v4.jar in the dependency list, [2014-05-04

解決android系統進行OTA升級失敗進入recovery介面不能自動重啟問題

1.前言          在使用android系統中我們肯定需要對其進行OTA升級,因專案原因,我們機器升級頻率比較高,android系統升級出現失敗的情況肯定是有的,原因用多方面,下面會說到。升級

解決android:background背景圖片被拉伸問題

ImageView中XML屬性src和background的區別: background會根據ImageView元件給定的長寬進行拉伸,而src就存放的是原圖的大小,不會進行拉伸。src是圖片內容(前景),bg是背景,可以同時使用。 此外:scaleType只對src

Android如何把圖片轉為深度32位格式.bmp的圖片

前幾天公司的產品要求做個手機拍的照片轉深度為32位,格式為.bmp格式的圖片,仔細研究了下,通過調系統相機根據照片存的路徑以及FileInputStream獲得照片的bitmap,拿到這個bitmap後把資料放到下面的方法裡,可獲取bmp格式的圖片,深度為32位

android給定圖片維持寬高比縮放後,擷取正中間的正方形部分

       /**      * 將給定圖片維持寬高比縮放後,擷取正中間的正方形部分。      * @param bitmap      原圖      * @param edgeLength  希望得到的正方形部分的邊長      * @return  縮放擷取正中部

神奇的AI:靜態圖片轉為3D動圖

近日我們從外媒獲得訊息,位於莫斯科的三星AI中心和Skolkovo科學技術研究所的研究人員發表了一篇新論文,詳細介紹了從單個靜止人

PostMan 發送Json數據,WebApi查看Null的問題(已解決)

webapi 技術分享 log bsp mage bapi 問題 strong -1 請求的Body中選擇form-data是不行的. PostMan 發送Json數據,WebApi查看時為Null的問題(已解決)