2011-04-07 77 views
3

我对这个修补程序有点不知所措,我有一个可修补的九个修补程序(见附件),它在draw9Patch工具中工作,没有坏的修补程序,在初始加载申请ldpi,mdpi,hdpi 1.6 - 2.3.3。九个可修剪的修补程序

但是,如果我转到其他活动,然后返回到包含带有九个补丁的按钮的原始屏幕(因为它是背景),每个屏幕大小都会在顶部裁剪(看起来好像它出现在可重复区)。

我已经通过布局修改了任何九个补丁drawable使用,以确保它不是一个流氓九补丁导致其余的问题。我已经确保每个密度像素屏幕都有它自己的一组资源,并且我将尝试将按钮的xml状态选择器移动到每个相应的可绘制文件夹中。

令人沮丧的是,即使九个补丁画错误,旋转屏幕似乎解决了这个问题,只有当我从一个新的活动回到问题活动,九个补丁剪辑50%的时间。

的绘制对象是:

Problem Nine Patch

所得到的图像的左部是如下(注意没有圆形边缘):

Rendered problem nine patch

如果你确实放大在渲染的图像上,它看起来有九个补丁(在缩放像素上方)的顶部与下面的可绘制物重叠(放大并且您看到圆角)。

该按钮的布局有什么不寻常一下:

<Button 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:layout_marginTop="10dp" 
    android:text="@string/some_text"></Button> 

我可以设置layout_height到一个固定的高度(即50dp),这似乎停止九个补丁崩于自身/限幅。

如果任何人有任何问题可以问什么请让我知道。

干杯, 马特

解决方案:

我的问题是做在状态列表选择以下布尔参数:

机器人:constantSize = “真” 机器人:抖动= “false” android:variablePadding =“false”

我不确定是什么导致了这种行为,但我认为它会导致某种形式的缓存或某种optimisat引入了这个间歇性错误的离子。

+1

临时修复似乎设置了一个固定的高度或填充,不允许九个补丁崩溃,但我的印象是包装内容并未在九个补丁中导致这种“减少”行为 – 2011-04-07 14:39:29

+1

如何使垂直拉伸面积更大?这将允许更短的按钮,而不会完全搞乱渐变。 (剪切是我期望的,但不是它的明显的随机性。任何关于它的想法?) – bigstones 2011-04-07 14:48:26

+0

我刚刚意识到它是什么(请参阅后附的解决方案) – 2011-04-07 14:59:52

回答

1

我的问题是,在国家列表选择以下布尔参数做:

机器人:constantSize =“真正的”机器人:抖动=“假”机器人:variablePadding =“假”

我我不确定是什么导致了这种行为,但我认为它会导致某种形式的缓存或者引入这种间歇性错误的一些优化。

相关问题