創建從位圖繪製
回答
您可以使用
Drawable d = new BitmapDrawable(getResources(), my_bmp);
可拉伸性,它包裝一個位圖,可以平鋪,拉伸,或 對齊。您可以通過文件路徑,輸入 流,通過XML通脹或從位圖對象創建BitmapDrawable。
BitmapDrawable(Resources res, Bitmap bitmap)
從位圖創建可繪製,設定基於 資源的顯示量度初始目標密度。
又找一個公共構造@
http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html
你回答告訴我你沒有看原件帖子。 ;-)我不從資源加載我的位圖。我從雲中獲取位圖作爲照片。因此我不能在該代碼中使用資源引用。任何其他想法? – Igor
@Igor你從未在你的帖子中提到過。這不是我的錯。 – Raghunandan
但是,我在那裏提到了這個要求,引用了我原來的問題的鏈接。就像我說的 - 你沒有看。 ;-) – Igor
試試這個加載Bitmap
爲Bitmap Drawable
像下面
Drawable d = null;
public Drawable ImgDrawableFromFile(Resources res, String file_name) {
myBitmap = null;
File imgFile = new File(
"/data/data/yourpkgname/app_my_sub_dir/images/" + file_name);
if (imgFile.exists()) {
myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
if (myBitmap != null) {
d = new BitmapDrawable(res, myBitmap);
return d;
} else {
return null;
}
}
return null;
}
既然叫像
這個函數創建晚會有點晚,但我看到一個明顯的誤解。所提供的答案確實是正確的:
Drawable d = new BitmapDrawable(getResources(),bitmap);
在這種情況下getResources()
在Context
或Activity
可用的方法,並且僅用於找出屏幕密度,並相應地調整可繪製。
因此,即使您從雲中加載圖像,Igor仍然可以調用getResources()。
快樂編碼
如果莫羅Banze是遲到了,然後我真的不知道我還在這裏幹什麼。但是對於那些急切尋找解決方案的人來說,這裏是我所做的:
當從JavaFX將項目引入Android時,我偶然發現了同樣的問題。我想重複使用大部分只能管理和提供數據並且對UI沒有任何影響的「數據」類。
夠了講故事,在這裏我們去:
問題:
- 在某些時候,我們需要一個
Drawable
走出位圖在屏幕上。 - 我們要(從雲,互聯網或其它地方)此位圖下載和以後使用它保存爲
Drawable
- 我們不能這樣做,在非
Context
或非Activity
類,我們需要Resources
。
那麼,爲什麼我們不將其保存爲Bitmap
,直到我們需要它來繪製(這肯定會在Context
或Activity
類發生)。
我創建了一個名爲BitmapImage
的類。它看起來像這樣:
public class BitmapImage {
private final Bitmap bitmap;
public BitmapImage (Bitmap bitmap) {
this.bitmap = bitmap;
}
public Bitmap getBitmap() {
return bitmap;
}
public Drawable getDrawable(Resources res) {
return new BitmapDrawable(res,getBitmap());
}
這非常簡單的類「拯救」的位圖。因此,您可以使用Drawable
來處理BitmapImage
,直到您真的非常需要Drawable
。
在這一點上,你應該在你的Activity
或Context
,那裏你可以撥打Drawable foo = anyBitmapImage.getDrawable(getResource())
。
- 1. 從可繪製的位圖創建位圖
- 2. 如何創建繪製位圖?
- 3. 創建一個位圖/從文件路徑繪製
- 4. 從的onDraw()繪製到創建的位圖
- 5. 從CCSprite創建CCTexture2D,繪製方法中繪製的圖元
- 6. 繪製位圖?
- 7. 繪製位圖?
- 8. 繪製位圖
- 9. 繪製編程創建視圖爲位圖
- 10. 創建繪製
- 11. 從圖像創建位圖
- 12. drawCircle繪製位圖?
- 13. Gtk繪製位圖
- 14. Canvas繪製位圖?)
- 15. Android - 繪製位圖
- 16. 使用多個可繪製的alpha創建位圖
- 17. Android:融合可繪製來創建位圖
- 18. 使用Direct2d繪製和創建無矩形位圖
- 19. 將自定義創建的位圖繪製到屏幕
- 20. 創建一個新的位圖,並繪製新的像素
- 21. 在繪製位圖上繪製文本
- 22. 從可繪製圖像創建圖像庫
- 23. 從可繪製的圖形創建新的圖像文件
- 24. 從活動創建位圖
- 25. 從double創建位圖[]
- 26. OpenCV的,創建從位圖
- 27. 從jpeg創建位圖
- 28. 從字節創建位圖[]
- 29. 圖形不繪製位圖
- 30. Android:從HTTPS獲取位圖/繪製
你可以試試這個'Drawable d = new BitmapDrawable(res,bmp);'? –
@SimplePlan,正如我在原始線程中寫的,位圖來自雲,而不是資源。 – Igor
然後您必須從雲端下載該圖像,然後加載爲Drawable。 –