如果没有背景图像在各种屏幕上变形/拉伸,最好的方法是什么?

时间:2011-04-16 20:37:04

标签: android android-2.1-eclair

我想将图像放入我的活动背景中。这个图像实际上是一个半透明的圆形徽标,应该位于UI上的任何其他内容后面。我也会将它偏移到底角。

在没有它的情况下,我可以放置这个图像的最佳方式是在不同的屏幕尺寸下变成“压扁”(蛋形)?我的应用程序仅在纵向模式下运行。

这就是我想要实现的目标:

enter image description here

到目前为止,我已将我的圆形图像放置在3个白色矩形画布上,用于流行大小的屏幕480x854320x480240x320,这似乎有用,但我不这样做认为它非常扎实。

任何提示?

2 个答案:

答案 0 :(得分:1)

这可能不是完美的解决方案,需要在UI上进行一些维护,但这是我的想法:

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:layout_marginRight="-15dp"
        android:layout_marginBottom="-15dp"
        android:src="@drawable/circle"
        />
    <!--Rest of Layout goes here-->
</FrameLayout>

只需将其包裹在当前布局周围,然后将右边距和下边距调整为您希望抵消的任何负边距。这适用于任何屏幕尺寸,假设您有每个密度的可绘制。

编辑:是的,您也不必担心这样的白色矩形。只需将android:background标记添加到FrameLayout,使用您想要的背景颜色,并将徽标另存为透明PNG。

答案 1 :(得分:1)

我会这样做,使用相对布局在背景中有一个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">
    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:scaleType="centerInside"
        android:src="@drawable/splash_picture"/>
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal">
        <!-- rest of your layout -->
    </LinearLayout>
</RelativeLayout>