标签: nine-patch

带有九个补丁文件的Eclipse bug?

我试图将我的所有按钮背景转换为.9.png,但是我遇到了Eclipse的问题.

我使用该工具创建了我的九个补丁.png,但是因为我把它放在我的/ res/drawable文件夹中,当我尝试访问以@drawable开头的任何资源时,我的所有.xml文件中都有以下错误:

Error: No resource found that matches the given name (at 'drawable' with value '@drawable/my_resource').
Run Code Online (Sandbox Code Playgroud)

这是我的.9.png: 九个补丁

这是一个截图: 截图

我的.9.png中是否有问题或是否是eclipse的问题?

谢谢

eclipse resources android nine-patch

9
推荐指数
1
解决办法
4831
查看次数

Android搜索栏使用九个补丁图像设置自定义样式

我正在尝试创建一个自定义样式的搜索栏.我有两个9补丁图像,一个是灰色拉伸条search_progress.9.png(背景颜色),另一个是绿色拉伸条search_progress_bar.9.png(前景色).

我使用这个xml作为我的seekbar的progressDrawable:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background" android:drawable="@drawable/search_progress"></item>
    <item android:id="@android:id/progress" android:drawable="@drawable/search_progress_bar"></item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

我的问题是,不是栏填满我的拇指位置,整个栏一直是绿色(search_progress_bar图像).如何使用我自己的图像获得与Android的progress_horizo​​ntal.xml相同的效果(我不想使用形状来绘制我的栏)?

android progress fill seekbar nine-patch

9
推荐指数
2
解决办法
1万
查看次数

9patch可以获得大量资源而不会降低质量

我的设计师在Illustrator上工作,并使用脚本导出mdpi,hdpi和xhdpi(以及iOS res)的所有资源.对于按钮和可伸缩图像,我正在寻找生成9个补丁的最佳解决方案.

到目前为止,我在SDK中使用draw9patch soft来生成9个补丁.它仍然有效,但严重的是,我希望有更好的方法.如果在我的项目中我有20个按钮,有3个或4个状态,并且有3种密度类型,我无法想象这个解决方案需要的小时数.

解决方案是使用Asset Studio工具,但我不想提供我的xhdpi文件,并为其他密度文件夹获取生成不佳的图像.我的目标是为每个密度获得像素完美的9个补丁.

我们还尝试将SVG文件用于可伸缩图像,但似乎Asset Studio不接受它们.

如果我的设计师试图直接在Illustrator中制作9patch,他就不能使用脚本导出,因为1 px线也会缩放,并且不再测量1px.

那么有没有一个解决方案可以制作9个补丁而不会丢失图像质量,而且不需要花费10个小时的时间?

android adobe-illustrator nine-patch

9
推荐指数
1
解决办法
1347
查看次数

在LinearLayout中更改分隔符的颜色

我可以知道如何改变分频器的颜色LinearLayout吗?

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:orientation="horizontal"
    android:divider="?android:attr/dividerVertical"
    android:dividerPadding="12dip"
    android:showDividers="middle"
    android:background="#ff2d2d2d" >
...
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我是否需要手动将Android SDK中的9个补丁图像复制到我的项目中,并定义我自己的属性来引用它?

android nine-patch android-linearlayout

9
推荐指数
1
解决办法
7737
查看次数

九贴片与矢量图形

我正在学习Android UI并且不清楚为什么人们使用九个补丁,当你可以使用矢量图形时,因为它们是可扩展的,没有任何像素降级.我是Android的初学者,所以我希望我在这里没有遗漏任何东西,但似乎更容易构建矢量图形并使用它们.您不需要特殊的编辑器来构建它们.

任何人都可以解释使用九个补丁超过向量的优势吗?(不要只解释九补丁的优点,因为这已经在StackO上完成了,而是向量没有的优势).因为看起来Android推荐九补丁.谢谢.

android vector nine-patch

9
推荐指数
1
解决办法
6364
查看次数

Android:9-patch图像未按预期延伸

实际图像是这样的:

红色的盒子是我制作1 px黑色喜欢的地方.即使预览显示也很好.所以9补丁没问题

但我得到以下布局的图像是:

<ImageView
    android:id="@+id/image_landing"
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:background="@drawable/loginheader"
    android:contentDescription="@string/login_header"
     />
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我预计,左侧的标识和右侧的黑点以及它们之间的其余空间填充了我在顶部选择的灰色

谢谢

android nine-patch

8
推荐指数
1
解决办法
7556
查看次数

?android:attr/selectableItemBackground与另一个现有背景

我有一个9patch设置作为我的布局的背景.但是我仍然想通过使用selectableItemBackgroundattr 提供触摸反馈.

我已经使用试图<layer-list>与9patch和selectableItemBackground作为android:drawable第二的<item>,但没有奏效.

我也可以尝试进行选择和覆盖梯度绘制Android使用了selectableItemBackgroundlist_selector_background_pressed.xml同一个<layer-list>.但是在4.4 KitKat中,选择的背景颜色实际上是灰色而不是JellyBeans中的蓝色,所以我不能真正硬编码:(

合适的方式,对吧?d:

android nine-patch android-selector

8
推荐指数
1
解决办法
3110
查看次数

Android Studio,9 Patch和"Show Bad Patches"按钮.怎么知道的?

我正在尝试清理一个包含大量九个补丁图像(大约50个)的大型项目.我发现的一件事是当一个android项目从Eclipse迁移到Android Studio时,系统会查看9个补丁图像,以确保它们符合标准.而且我遇到了很多错误.

我见过的9补丁的最佳描述是9补丁的简单指南.

Android Studio包含一个9补丁编辑器工具.这是使用那个把我带到这里的工具.该工具有一个按钮,可以切换"显示错误的补丁/隐藏不良补丁".我正在努力尝试理解"坏补丁"的概念.

参考:Android文档,描述该按钮的使用.

显示错误的补丁:在补丁区域周围添加红色边框,在拉伸时可能会在图形中产生伪影.如果消除所有不良补丁,将保持拉伸图像的视觉一致性.

参考:关于2D图形的Android开发者指南. 该指南说"显示不良补丁"按钮......

如果您为可伸展区域定义的区域由于像素复制而产生绘图工件的风险,则会发出警告.

这是我正在查看的文件的屏幕截图:

屏幕截图来自我的笔记本电脑Ubuntu 14.04与Android Studio 1.0.2

所以这是交易.无论我做什么,我的图形上总会看到一些坏的补丁.你如何'清理'图像以避免坏补丁?

为什么我的屏幕上会显示这些红色框?我一直在玩图像和1像素边框,但不知道从哪里开始.谁知道这里发生了什么?Nirvana.9.png是什么样子的?

android nine-patch android-studio

8
推荐指数
1
解决办法
3042
查看次数

如何使用 Jetpack Compose 在我的屏幕中使用 9 补丁可绘制 (.9.png)?

我正在尝试在可组合图像中使用 .9.png 文件:

            Image(
            painter = painterResource(id = R.drawable.shadow_faq),
            contentDescription = "Faq card 1",
            modifier = Modifier
                .constrainAs(imgGeneral) {
                    top.linkTo(glImgGeneralTop)
                    bottom.linkTo(glImgBottom)
                    start.linkTo(glImgLeft)
                    end.linkTo(glImgRight)
                    height = Dimension.fillToConstraints
                    width = Dimension.fillToConstraints
                }
        )
Run Code Online (Sandbox Code Playgroud)

但这样做时我遇到了一个渲染问题:java.lang.IllegalArgumentException: Only VectorDrawables and rasterized asset types are supported ex. PNG, JPG

如何将 .9.png 文件与 Jetpack Compose 结合使用?

android image nine-patch android-jetpack-compose

8
推荐指数
2
解决办法
5864
查看次数

ImageView 9补丁绘图与填充线不受尊重

我有这个XML布局.frame_top_widget_holo是一个9-patch drawable,底部和右侧有填充线.它还在顶部和左侧有拉伸边界线.它被设置为背景,有一个图像可绘制集作为源.结果显示两者,但src图像与drawable设置的填充重叠.问题是scaleType,所以我怀疑这可能是一个错误.有谁知道如何解决这个问题?

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:scaleType="centerCrop"
    android:background="@drawable/frame_top_widget_holo"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/bigpicture" />
Run Code Online (Sandbox Code Playgroud)

android nine-patch android-layout

7
推荐指数
1
解决办法
2167
查看次数