设置活动背景而不拉伸

时间:2013-04-13 14:50:04

标签: android image background aspect-ratio stretch

我正在尝试在Android应用程序中设置背景图片。 我有一个JPEG图像,我想用图像的高度填充屏幕,保持相同的宽高比。

我尝试在drawable中创建一个XML位图文件并将其设置为:

android:background="@drawable/background_image"

这是XML

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/wallpaper1_1920x1200"
    android:tileMode="disabled"
    android:gravity="center" >
</bitmap>

使用'center'标签时,它不会拉伸图像,也不会调整图像大小。

有没有办法显示保持原始宽高比的图像(和裁剪边)的整个高度?

2 个答案:

答案 0 :(得分:0)

您可以使用Scale Drawable(http://developer.android.com/guide/topics/resources/drawable-resource.html#Scale)包裹您的位图 然后使用drawable作为布局的背景。

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/wallpaper1_1920x1200"
    android:scaleGravity="clip_horizontal"
    android:scaleHeight="100%"
    android:scaleWidth="100%" />

答案 1 :(得分:0)

一种解决方案可能是将其转换为9补丁png文件,允许您定义它可以伸展的位置。请参阅http://developer.android.com/guide/topics/graphics/2d-graphics.html,即9个补丁图像末尾附近的部分。