Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android 9-patch图形不';图像视图中的t比例_Android_Imageview_Nine Patch - Fatal编程技术网

android 9-patch图形不';图像视图中的t比例

android 9-patch图形不';图像视图中的t比例,android,imageview,nine-patch,Android,Imageview,Nine Patch,我有 第一个图像是一个固定大小的图像,根本不应该缩放。图像右侧应水平缩放至最大空间。源指向一个有效的.9.png文件。不幸的是,它总是以原来的尺寸出现。我必须设置什么属性?ImageView是正确的对象吗 谢谢, A.改用android:background。如果它只是一个下划线,您可以使用视图,而不是图像视图。至于填充屏幕的其余部分,您可能需要使用TableLayout 此外,请确保您的9-patch是正确的。1px侧面必须为黑色#000只需将android:scaleType=“fitX

我有


第一个图像是一个固定大小的图像,根本不应该缩放。图像右侧应水平缩放至最大空间。源指向一个有效的.9.png文件。不幸的是,它总是以原来的尺寸出现。我必须设置什么属性?ImageView是正确的对象吗

谢谢,
A.

改用
android:background
。如果它只是一个下划线,您可以使用
视图
,而不是
图像视图
。至于填充屏幕的其余部分,您可能需要使用
TableLayout


此外,请确保您的9-patch是正确的。1px侧面必须为黑色#000

只需将
android:scaleType=“fitXY”
添加到您的
ImageView
。例如,对于myimage.9.png:

<LinearLayout android:id="@+id/LinearLayout01"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:orientation="horizontal">
    <ImageView android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:id="@+id/ImageView01"
        android:src="@drawable/phone80"></ImageView>
    <ImageView android:id="@+id/ImageView02"
        android:layout_height="wrap_content" android:src="@drawable/underline"
        android:layout_width="fill_parent" android:layout_gravity="fill_vertical|fill_horizontal"></ImageView>
</LinearLayout>


还要检查以确保侧面的比例线不会一直延伸到图像的各个角落。我知道那里有黑色像素是没有意义的,但我想Android会忽略它们,但它实际上阻止了缩放。它还会在输出窗口中显示“错误:9-patch image xxx.9.png格式错误”消息,但您可能没有注意到这一点。我一取出角落里的像素,它就开始为我工作。

尝试使用setImageResource(9patchResourceID)而不是setImageBitmap或setImageBackground,它就工作了:)

这是正确的。如果没有fitXY,9补丁将无法使用,图像将像正常情况一样拉伸。这肯定是正确的答案,因为android:background在ImageView位于RelativeLayout内以及相对于其他视图时不会被考虑。这只是对该答案的补充。比例仍然是错误的,直到我把补丁点从左角移到中间,我才得到一个向下的投票。。。希望得到一些反馈,让其他人受益。将图像添加到背景而不是src意味着另一层内容会降低性能。这不是我的否决票,但我也希望能够使用填充图像,并在加载时与最终图像交换;没有堆叠两个图像。正确和错误。您可以将背景添加到根线性布局,然后在其上添加填充或格式,这意味着内容将是第二层,并且更易于维护。。。两者都很好,但这取决于用例。谢谢你的评论!虽然这个答案提出了一些好的观点,但来自卡山的@almaz_的答案是这个问题的更好答案。下面的答案应该被认为是正确的,原因在下面的答案评论中解释。
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:src="@drawable/myimage"
    android:scaleType="fitXY" />