我正在开发一个应用程序,我需要更改微调器背景布局以匹配背景颜色.我研究并发现我需要创建一个9补丁图像.我已经完成了创建9补丁图像并在应用程序中使用但它看起来比普通微调器更大,而且我也看不到微调器中的下拉按钮.
如果你们从开始为Spinner创建9补丁图像并在应用程序中使用它,我很高兴为我提供了一个明确的教程.

微调器的代码
<Spinner
android:id="@+id/spnIncredientone"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/txtMixtureTitle"
android:layout_marginLeft="5dip"
android:layout_marginRight="5dip"
android:background="@drawable/spinner_background"
android:prompt="@string/selectmixture" />
Run Code Online (Sandbox Code Playgroud) 每当我尝试将9补丁图像添加到\drawable项目中的文件夹时,我都会收到同样的错误:
ERROR: 9-patch image C:\...\res\drawable\appwidget.9.png malformed.
Frame pixels must be either solid or transparent (not intermediate alphas).
Found at pixel #3 along top edge. Failure processing PNG image
C:\...\res\drawable\appwidget.9.png
Run Code Online (Sandbox Code Playgroud)
这个例子中的奇怪之处在于我从SDK资源中找到的"android-g1-icon"图像中获得了这个图像,所以它应该没问题.到目前为止,我尝试过的任何9补丁图像都是如此.可能有什么不对?
我最近听说过9张补丁图片.我知道它的9平铺并且是可拉伸的.我想更多地了解它.
如何创建9补丁图像?
有没有工具?我可以从AndroidSDK或代码创建吗?
9-patch主要优于普通png?
(它是否可根据屏幕动态/自动伸缩?)
我有一个屏幕,用户有很多项目要输入,因此屏幕空间非常宝贵.
我希望屏幕上的小部件外观(在用户按下它之前)类似于Spinner右侧的EditText或Spinner小部件的左侧部分(没有正常的向下三角形).然后,当用户按下小部件时,他/她将获得正常的微调器选择对话框.
是否有一些Spinner样式属性我可以更改以实现此目的?
我无法看到这样的代码.
谢谢
我的Android应用程序要求通过从服务器端检索新的颜色和图像来定制图形上的部件.这些图像中的一些是九个补丁图像.
我找不到创建和显示这些九个补丁图像(已通过网络检索)的方法.
检索九个补丁图像并将其作为位图保存在应用程序中.要创建NinePatchDrawable,您需要相应的NinePatch或NinePatch的chunk(byte[]).无法从资源中加载NinePatch,因为图像不存在/res/drawable/.此外,为了创建NinePatch,您需要NinePatch的大块.所以,这一切都深入到大块.
那么问题是,如何从现有的Bitmap(包含NinePatch信息)格式化/生成块?
我搜索了Android源代码和Web,我似乎无法找到任何这方面的例子.更糟糕的是,NinePatch资源的所有解码似乎都是本地完成的.
有没有人有这种问题的经验?
我的目标是API级别4,如果这很重要的话.
我有一个9补丁图像文件,如下所示:

当我使用它时,它看起来像这样:

我实际想要实现的是中心的完整点重复而不是拉伸.我希望这是可能的.
我已经更新了Android SDK的r20并启动了9补丁工具.
似乎有一个新功能 - 保持控制并单击添加布局边界,称为红色像素.
我看了一下文档,但似乎已经过时了.
我的问题是,使用的布局边界是什么以及使用它们的最佳方式是什么?
谢谢.
我刚遇到一个我不知道如何解决的问题.它看起来很傻但我找不到解决方法.
我在android中有一个带有几个EditText的表单,当你提交表单时,它检查那些EditText,如果他们有错误的数据,我将EditText更改为红色边框(应用9patch图像).
myEditText.setBackgroundResource(R.drawable.edittext_red);
Run Code Online (Sandbox Code Playgroud)
问题是,我想在用户更改EditText时恢复android的默认样式,但我不知道该怎么做.如果我做:
myEditText.setBackgroundResource(0);
Run Code Online (Sandbox Code Playgroud)
它会删除所有内容,而这不是我想要的.
谢谢!
android nine-patch android-edittext android-resources android-drawable
在android studio中,您可以直接使用IDE编辑9个补丁.但是也可以使用IDE将png图像转换为9-patch?(类似于SDK提供的android 9-patch工具).
我正在尝试使用Android SDK中的Draw9Patch工具,但是在使用Draw9Patch打开我的图像后,它立即将我的所有图像区域显示为"Bad Patch".我手动绘制了定义可伸展区域的线条,但我不确定这是否可以正常工作.有人可以解释为什么这个特定的图像不是一个"好补丁"?此问题的其他Stackoverflow答案似乎与我的问题无关,或者我不理解它们.
