2011-03-24 24 views
6

我正在嘗試動態創建一個Android視圖對象,然後將此視圖添加到基於某個庫中某些用戶選擇的小部件中。問題是它沒有可繪製資源的setter。設置圖像的唯一方法是如果我預先定義了一個xml佈局。我不能然後設置用戶選擇的圖像。如何通過編程方式將URL添加到視圖中,但不是xml佈局

儘管我可以創建一個視圖,但它沒有設置正確的屬性。我嘗試着實現我自己並展示drawable,但後來遇到了「未找到類」的問題,並且我已經閱讀了它無法解決的問題。

是否有可能在構造函數的AttributeSet中提供某些東西?

真的很掙扎,如果我能找到設置選項的方法,我甚至不需要自定義視圖。

android:drawable1="@drawable/predefined_image" 
android:drawable2="@drawable/predefined_image" 

,並通過AttributeSet中的通過這個,因爲我知道它只是需要這些,並從中產生可繪製。


好讓澄清問題一點,

我有一個XML配置文件

<AndroidSystemWidget 
android:drawable1="@Drawable/drawable1" 
android:drawable2="@Drawable/drawable2" 
/> 

現在我有SD卡 /SD卡/圖片/圖像1 2個PNG文件。 png /sdcard/pictures/image2.png

現在在代碼中沒有用於drawable1或2的暴露setter,只有一個構造函數

AndroidSystemWidget widget = new AndroidSystemWidget(Context, AttributeSet) 

我想在上面設置爲drawable1和drawable2兩個PNG文件我的窗口小部件配置來創建此AndroidSystemWidget,然後通過對應用程序控件提供者視圖設置。

+0

發佈您嘗試使用的代碼的一些示例可能會幫助人們回答您的問題。 – Squonk 2011-03-24 23:34:28

+0

據我所知,您無法從xml引用文件路徑。爲什麼不修改小部件呢? – 2011-03-25 14:44:43

+0

我不想從xml引用路徑。總的來說,我無法使用xml,因爲在進入配置屏幕之前我不知道圖像是什麼,並要求用戶從圖庫中選擇它們。我需要能夠設置2個drawable1和2,但不在XML之外,但是沒有drawable1和drawable2的setter。這正是我正在努力做到的。我創建了自己的小部件版本,但是android不允許使用自定義小部件。 – DeliveryNinja 2011-03-28 17:53:59

回答

8

你的問題有點模糊,所以原諒我,如果我誤解了,但你可以簡單地使用ImageView,然後通過setImageFoo通話設置你的形象:

imageView.setImageBitmap(bitmap); 
imageView.setImageResource(R.drawable.my_image); 
imageView.setImageDrawable(drawable); 

如果您使用的是自定義視圖和使用畫布調用畫圖,那麼你也可以使用各種drawBitmap例程。

如果您希望通過網絡加載圖片,如圖所示,那麼您可以查看this answer,該圖片鏈接到DroidFu庫。

+0

我有一個自定義視圖,但由於允許添加到窗口小部件的類的限制,我必須使用現有的Android應用窗口小部件提供程序。問題是它只能通過xml設置它的屬性,我需要一種創建相同的XML設置,而不是使用android:drawable =「@ drawable/resource1」的方式,我需要在代碼中從文件路徑執行此操作。沒有getter和setter被暴露給drawable在xml中的設置。只有構造函數的attributeSet。哦,謝謝你的鏈接,稍後它會派上用場;) – DeliveryNinja 2011-03-25 09:18:41

相關問題