我想在我的Android应用程序中使用更多的vector绘图。 提供图像并不像我希望的那样具有空间效率或可扩展性。 Android提供了一系列可绘制的文件格式 ,如ShapeDrawable ,可以在LayeredDrawable进行组合。 要走这条路很远,如果有一个devise师可以看到结果,进行绘图并处理所有的结果文件,那就太好了。 C#WPF有Expression Blend ,Adobe有Flash CS4,iPhone有Opacity 。 所以我的问题是,有没有Android的devise师或绘图工具? 注意:其他问题已经谈到在Android中使用SVG。 Android不支持SVG,所以唯一的方法就是使用外部库。 我想避免这一点,并要求一个开发人员的工具。 SVG到Drawable转换器会很好,但我不知道一个。
你可以加载assets (而不是可绘制文件夹)文件夹中的子目录的绘图?
我有一些可点击的意见,我想设置列表点击目前的默认可用背景(在ICS是一个蓝色)。 我曾试图把这个背景作为背景: android:background="@android:drawable/list_selector_background" 但它不是默认的蓝色(我使用的是橙色)。 android中默认使用的drawable是什么? 谢谢
项目层次结构中res文件夹中的三个可绘制文件夹之间有什么区别? 如果我有一个图像放在一个文件夹,我把它放在哪个文件夹?
我想能够使用相同的drawable来表示两个: 和 作为相同的drawable,并基于一些编程值重新绘制drawable,以便最终用户可以重新devise界面。 做这个的最好方式是什么? 我已经尝试(并重复使用图标) 这个以前的SO问题,但我不能把这个变化performance为一个简单的色调变化,因为它也会在饱和度和值上有所不同。 是否最好将图标全部保存在我想要更改的区域? 还是透明? 或其他一些纯色? 有没有什么方法可以让你根据red_icon的颜色和blue_icon的颜色之间的差异找出matrix?
我正在创build一个应用程序,可以重复使用的资源(因为button总是相同的,但镜像或旋转)。 我想要使用相同的资源,所以我不必添加3个更多的资源,就像原来的,但旋转。 但是我也不想把代码和XML中可以声明的东西混合起来,或者用一个会花费处理时间的matrix进行转换。 我有一个XML中声明的两个状态button。 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/and_card_details_button_down_left_onclick" /> <!– pressed –> <item android:drawable="@drawable/and_card_details_button_down_left" /> <!– default –> </selector> 我想重复使用drawable,因为它将会是相同的,但是旋转了90º和45º,我把这个button分配给drawable。 <Button android:id="@+id/Details_Buttons_Top_Left_Button" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/details_menu_large_button" /> 我知道我可以用RotateDrawable或Matrix来旋转它,但正如我已经解释过的,我不喜欢这种方法。 是否有可能直接在XML上实现,或者你认为这将是最好的方法吗? 把所有的资源,但旋转,旋转他们的代码? —编辑— @dmaxi的答案很好,这是如何将它与一个项目列表:) <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <rotate android:fromDegrees="90" android:toDegrees="90" android:pivotX="50%" android:pivotY="50%" android:drawable="@drawable/and_card_details_button_up_onclick"/> </item> <item> <rotate android:fromDegrees="90" android:toDegrees="90" android:pivotX="50%" android:pivotY="50%" […]
我有一个用作ListView的项目的视图。 在我的自定义适配器中,使用View.setBackgroundResource()根据项目在列表中的位置更改视图的背景。 (对于列表中的第一个和最后一个项目,我有单独的资源。) 如预期的那样设置正确的背景图像,但是它具有令人讨厌的副作用,即在视图的XML定义中设置的所有填充都被完全忽略。 (如果我在XML中设置可绘制背景,并且不要在适配器的运行时改变它,那么填充一切正常。) 我怎样才能改变背景图片,并保留填充? 这是一个错误? 编辑它似乎有人已经在这里find了同样的问题: 改变背景也改变了LinearLayout的填充?
我试图做一个通用的框架function,使任何可绘制成为突出显示时按/聚焦/select/等 。 我的函数需要一个Drawable并返回一个StateListDrawable,其中默认状态是Drawable本身, android.R.attr.state_pressed的状态是可绘制的,只是使用setColorFilter应用了一个filter。 我的问题是,我不能克隆drawable,并应用filter的一个单独的实例。 这是我想要实现的: StateListDrawable makeHighlightable(Drawable drawable) { StateListDrawable res = new StateListDrawable(); Drawable clone = drawable.clone(); // how do I do this?? clone.setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY); res.addState(new int[] {android.R.attr.state_pressed}, clone); res.addState(new int[] { }, drawable); return res; } 如果我不克隆,那么filter显然应用于两种状态。 我尝试玩mutate()但它没有帮助.. 有任何想法吗? 更新: 被接受的答案确实克隆了一个drawable。 它并没有帮助我,虽然因为我的一般function失败了一个不同的问题。 看起来,当你将一个drawable添加到一个StateList时,它将失去所有的filter。
我有一个ImageView有一个可绘制的图像资源设置为select器。 如何以编程方式访问select器并更改突出显示和非突出显示状态的图像? 这是一个select器的代码: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/iconSelector"> <!– pressed –> <item android:state_pressed="true" android:drawable="@drawable/btn_icon_hl" /> <!– focused –> <item android:state_focused="true" android:drawable="@drawable/btn_icon_hl" /> <!– default –> <item android:drawable="@drawable/btn_icon" /> </selector> 我希望能够用其他图像replacebtn_icon_hl和btn_icon 。
在我的可绘制文件夹中有几个图像,他们都参考完美,但是当我尝试在同一文件夹中添加具有完全相同大小的更多图像,并尝试引用它时,标记为“无法转换@ drawable / picture into a drawable“ 。 我用不同的名字尝试了相同的图像,只是一直给我那个错误。 我也尝试了不同的XML布局和相同的东西。 此外,图片的名称已经“jack”,“abc”,“question_mark”,你可以看到严格的规则,你可以使用什么字符,仍然错误消息不断出现。 任何意见将是如何解决这个问题很好,谢谢。 无法将@ drawable / picture转换为drawable