水平居中图像

时间:2015-04-15 19:41:32

标签: android imageview nine-patch

我刚开始使用我的第一款Android应用。我在Android Studio工作,我最初的问题是在第一页的顶部显示客户徽标。

我已经想出如何将徽标转换为.9.png,并使用android-drawable-importer插件以各种所需的分辨率将其加载到项目中。

现在我的问题只是让图像在我的显示器上正确缩放。

目前,我正在使用LinearLayout,ImageView占据了显示器的顶部区域:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="12"
    >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:src="@drawable/mylogo"
        />

    <!-- ... -->

</LinearLayout>

有了这个,我的徽标占据了显示器的顶部1/6,水平居中,但它没有伸展以填满显示器的整个宽度。如果我添加android:scaleType =“fitXY”,它会缩放以水平填充,但它也会垂直缩放,导致我看不到徽标的顶部和底部。

有没有办法显示图像以使其垂直放置并水平填充?


我正在编辑它,以扩大其范围。可能是我过于专注于制作9补丁工作,而且我的问题有更简单的解决方案。

我需要的是非常简单 - 我希望在页面顶部区域显示一个徽标,水平居中,徽标不会因x轴或y轴缩放而扭曲,但背景颜色会延伸到边缘水平显示。

如果九个补丁不会这样做,可能会有别的东西。

3 个答案:

答案 0 :(得分:2)

如何使用具有透明背景的徽标,然后将android:background的{​​{1}}设置为您需要的颜色?这样你就可以更好地控制徽标显示了吗?

另外,您是否尝试过尝试其他scale types?:

尝试设置ImageView,您的图片应以父级为中心显示,并进行缩放以尽可能多地填充可用空间。

如果图片仍然缩放不正确,您还可以设置android:adjustViewVounds参数,以便更好地满足您的需求

答案 1 :(得分:0)

使用android:scaleType =“fitXY”。此属性是9patch工作所必需的。此外,在使用9patch时,请注意以下其他一些事项。

1)使用名称引用drawable,但不包括.9.png(如果您仍在使用 tisk-tisk 的Eclipse,则eclipse中的自动完成将处理此问题)

2)确保主/可绘制文件夹下只有1个图像(不是每个dpi文件夹的版本)

3)图像必须使用:background,而不是:src(这让我卡住了一段时间)

android:background="@drawable/splash_logo"

4)确保包含它的图像和布局正在使用:

android:layout_width="fill_parent"
android:layout_height="fill_parent"

希望这有助于你的身高缩放,欢呼!

答案 2 :(得分:0)

您可以尝试这样的事情:

<ImageView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:src="@drawable/your_logo_image"
        android:background="@color/your_logo_image_background_color"
        android:scaleType="fitCenter"/>

这是一种解决方法,一种丑陋的&#34;溶液

我同意porfoliobuilder,九贴片图片可能不是徽标的最佳方法。