我对这个有点迷惑,我有一个9补丁(见附件),它可以在draw9Patch工具中工作,没有坏的补丁,在初始加载应用程序时运行良好。
但在每个屏幕尺寸上,如果我转到另一个活动,然后返回到包含九个可绘制补丁作为背景的按钮的原始屏幕,图像将被裁剪在顶部(看起来就像是在可重复区域中发生的一样)。
我已经检查了布局,修改了任何九个可绘制的补丁,以确保它不是一个流氓的九个补丁,导致其余的问题。我已经确保每个密度像素屏幕都有自己的一组资源,并且我还打算尝试将按钮的xml状态选择器移动到每个相应的可绘制文件夹中。
令人沮丧的是,即使九个补丁绘制不正确,旋转屏幕似乎也能解决问题,只有当我从一个新的活动返回到问题活动时,九个补丁才会截断50%的时间。
可绘制的是:

结果图像的左侧部分如下所示(请注意,没有圆角边缘):

如果您实际放大渲染的图像,它看起来像是九个面片的顶部(在缩放的像素之上)与下面的可绘制重叠(放大,您会看到圆角)。
按钮的布局没有任何不同寻常之处:
<Button
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/some_text"></Button>我可以将layout_height设置为固定的高度(即50dp),这似乎可以阻止九个补丁自行折叠/裁剪。
如果有人对这个问题有任何想法,请让我知道。
干杯,马特
解决方案:
我的问题是状态列表选择器中的以下布尔参数:
android:constantSize="true“android:dither="false”android:variablePadding="false“
我不确定是什么导致了这种行为,但我认为它导致了某种形式的缓存或某种优化,从而引入了这种间歇性的bug。
发布于 2012-02-19 07:25:23
我的问题是状态列表选择器中的以下布尔参数:
android:constantSize="true"
android:dither="false"
android:variablePadding="false"我不确定是什么导致了这种行为,但我认为它导致了某种形式的缓存或某种优化,从而引入了这种间歇性的bug。
https://stackoverflow.com/questions/5582720
复制相似问题