我使用IconDialog庫為我的 ImageView 設置一個圖標,用戶將設置它們。該庫將返回一個 Drawable 對象。當我沒有數據庫時,我使用這個庫沒有問題,因為我只是調用了 setDrawable 函數并將返回的可繪制對象傳遞給它,但現在我想將此可繪制對象的引用存儲到數據庫,但我在 Drawable 中找不到任何方法.class 來獲取可繪制對象或其他內容的引用,但我在庫中找不到任何返回任何引用的函數。任何想法?
3 回答

Smart貓小萌
TA貢獻1911條經驗 獲得超7個贊
您可以使用Resource.getIdentifier
int imgId = res.getIdentifier(resourceName, "drawable", context.getPackageName());

達令說
TA貢獻1821條經驗 獲得超6個贊
對于所有使用該庫并與我有同樣問題的人。我通過探索圖書館代碼找到了答案。有一個名為Icon的類,IconDialog返回該變量的實例。由于 Icon 的構造函數是私有的,您無法從該類實例化,因此您應該首先將它們轉換為Drawable,然后將這些Drawable轉換為Bitmap。

一只名叫tom的貓
TA貢獻1906條經驗 獲得超3個贊
我想你的意思是你想在你的 SQLite 數據庫中存儲一個 Drawable ?你可以去
val icon = BitmapFactory.decodeResource(this.resources, R.drawable.minus_vector_black)
val stream = ByteArrayOutputStream()? ? ? ??
icon.compress(Bitmap.CompressFormat.PNG, 100, stream)
val iconAsByteArray = stream.toByteArray()
然后將其作為 BLOB 保存到數據庫中
添加回答
舉報
0/150
提交
取消