2011-03-24 40 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

相关问题