Android只绘制了ImageView的一部分

时间:2011-12-08 16:26:46

标签: android android-layout

我想在带有9patch背景的相对布局上使用文本绘制ImageView。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/splash_last" >

<ImageView
    android:id="@+id/imageView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:src="@drawable/appnameimg" >
</ImageView>

</RelativeLayout>

在编辑器中我有这个:

layout in editor

在电话上:

layout on phone

似乎我只有3个字符来自字符串。

我的错误在哪里?

UPD

有背景和文字图片。是不是因为“坏”9patch? link to images

2 个答案:

答案 0 :(得分:1)

我能够重现这个问题。看起来你试图定义9补丁的方式就是问题。你想要一个角落是不可拉伸的,这是不可能的。根据{{​​3}} doc,要拉伸的区域是左和上一条像素黑线的交点。使用该定义,不可能将拐角定义为不可拉伸。如果我删除9补丁,两个图像看起来都很好。

答案 1 :(得分:0)

您需要定义图像在ImageView容器内的缩放方式。

在XML中设置android:scaleType =“fitCenter”,使图像在列表视图中居中,并将其放入容器内。

实施例

<ImageView
    android:id="@+id/imageView2"
    android:scaleType="fitCenter"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:src="@drawable/appnameimg" >
</ImageView>

或者其他可能适合您的选项之一 ImageView.ScaleType