我制作了一个9补丁和一个自定义视图组,然后我将该视图组的背景设置为九补丁.
问题是:九补丁忽略了"内容区域"设置.
那么:我如何在自定义视图中正确使用九个补丁?
要么:
我如何从九个补丁中获取内容区域,以便我可以在OnMeasure和OnLayout数学上使用它?
iam坚持为进度条背景创建一个九个补丁.它有一个重复的模式,如尺子scala,让我头痛.
这是我想要的(在底部)和我拥有的(顶部)的图像.

谁能给我一个提示如何实现我的目标?
编辑:或者是否可以通过9patch执行此操作?我的另一个尝试是使用android:tileMode ="repeat",但是我的图像高度出现问题(在第二行重复),我需要像repeat-x这样的东西.
提前致谢
edit2:好吧我设法通过拉伸整个重复模式来重复9patch,但它不理想:(
类中没有setBackground()方法RemoteViews,所以我使用了以下解决方法:
FrameLayout为我的应用程序小部件创建了一个ImageView作为背景视图.ImageView使用setImageViewResource()方法更改了图像.不幸的是,当涉及9-patch drawables时,这种方法不起作用.当一个ImageView's android:src属性指向9-patch时 - 它也不起作用.有没有办法AppWidget用9-patch drawable以编程方式改变背景图像?提前致谢.
编辑 将9-patch设置为XML中的初始背景:
<ImageView
android:id="@+id/small_widget_layout_bg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_lime" />
Run Code Online (Sandbox Code Playgroud)
当我使用android:src="@drawable/background_lime"它不能正确拉伸图像,这段代码工作正常.以及从AppWidgetProvider onUpdate方法更改背景的代码:
views.setImageViewResource(R.id.small_widget_layout_bg,
R.drawable.backgroung_lime);
Run Code Online (Sandbox Code Playgroud)
这不会将图像拉伸为9补丁.
android background-image drawable nine-patch android-appwidget
有没有人试图动态设置9Patch背景的按钮?如果重要,则按钮的宽度和高度设置为wrap_content
如果是的话,你是如何解决"黑线"问题的?
谢谢
我想要像Google Now Cards这样令人敬畏的阴影.我该如何创建它?我一直在谷歌搜索,但没有找到我的问题的任何答案.我已经尝试了这个答案,但我只得到这样的结果:

是的,我的九点结束了.9.png.
我有一个textview,必须使用9-patch drawable作为背景.但是9-patch drawable有左右填充,这使得背景图像不能正确拉伸以覆盖整个文本.我尝试重置textview本身的填充,但它不能解决问题.
有人会有任何想法如何让它工作?
谢谢.
我有一个有趣的问题,我不知道如何处理它.所以,直到现在一切都很好,我能够建立我的项目.我只用三种不同尺寸(mdpi,hdpi,xhdpi)的9patch版本替换了一个图像.
tw.setBackgroundResource(R.drawable.tag_rotate)
Run Code Online (Sandbox Code Playgroud)
这是建筑物失败的线.它很有趣,因为工作室能够向我显示左侧的图像,并且它没有标记为红色.但是构建失败并显示以下消息:
Error:(196, 52) error: cannot find symbol variable tag_rotate
Run Code Online (Sandbox Code Playgroud)
更新: 如果我从代码中删除图像,并替换为普通图像,它的工作原理!我使用SDK提供的默认9patcher
我有一个九个补丁图像,我想在视图中垂直居中,只有它水平扩展.
我已经尝试在九个贴片上放置两个可扩展区域(一个在上面,一个在下面)但是根据屏幕的密度,如果视图最终是偶数像素高而九个贴片是奇数高,那么图像稍微休息一下
有任何想法吗?
谢谢
我在Android上遇到了9-patch png的奇怪问题.它已经在Eclipse可视化编辑器中失败了,无论我使用哪个目标(尝试了7到14之间的几个).错误日志显示消息main.xml:索引:0,大小:0 背后的异常是:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at com.android.ninepatch.NinePatchChunk.draw(NinePatchChunk.java:185)
at com.android.ninepatch.NinePatchChunk.draw(NinePatchChunk.java:101)
at android.graphics.NinePatch_Delegate$1.draw(NinePatch_Delegate.java:219)
at com.android.layoutlib.bridge.impl.GcSnapshot.drawInLayer(GcSnapshot.java:613)
at com.android.layoutlib.bridge.impl.GcSnapshot.draw(GcSnapshot.java:583)
at android.graphics.NinePatch_Delegate.draw(NinePatch_Delegate.java:217)
at android.graphics.NinePatch_Delegate.nativeDraw(NinePatch_Delegate.java:170)
at android.graphics.NinePatch.nativeDraw(NinePatch.java)
at android.graphics.NinePatch.draw(NinePatch.java:120)
at android.graphics.drawable.NinePatchDrawable.draw(NinePatchDrawable.java:189)
at android.view.View.draw(View.java:10865)
at android.view.ViewGroup.drawChild(ViewGroup.java:2899)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
at android.view.ViewGroup.drawChild(ViewGroup.java:2897)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
at android.view.ViewGroup.drawChild(ViewGroup.java:2897)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
at android.view.View.draw(View.java:10883)
at android.view.ViewGroup.drawChild(ViewGroup.java:2899)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
at android.view.ViewGroup.drawChild(ViewGroup.java:2897)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
at android.view.View.draw(View.java:10883)
at android.view.ViewGroup.drawChild(ViewGroup.java:2899)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2495)
at android.view.View.draw(View.java:10883)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.render(RenderSessionImpl.java:505)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:324)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:325)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:372)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1323)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1077)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:903)
at …Run Code Online (Sandbox Code Playgroud) 我需要在WPF-app中创建和使用9-patch图像(*.9.png,就像在android中一样)!
只有一个问题 - 如何?
android ×10
nine-patch ×10
drawable ×2
background ×1
button ×1
c# ×1
custom-view ×1
dropshadow ×1
google-now ×1
padding ×1
stretch ×1
textview ×1
viewgroup ×1
wpf ×1