设置android app背景图片

时间:2012-02-17 07:18:46

标签: java android android-layout

我想将相同的背景图片设置为我的所有应用布局。我的应用支持从迷你手机到10.1平板电脑的所有设备。

有没有一种方法可以做到这一点,或者我需要为每个布局重新调整大小的图像设置质量会很好。

我在一个应用程序中找到了这个: 可绘制文件夹中的app_background.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#ffff00" />
</shape>   

也许有人可以给我很好的解释如何在java中分离设计和功能。

感谢。

2 个答案:

答案 0 :(得分:13)

使用样式执行此操作。
1.为背景​​创建适当的可绘制图像 2.使用以下内容创建values / styles.xml文件

<style name="AppTheme" parent="android:style/Theme.Black">
      <item name="android:background">@drawable/main_app_bg</item>
   </style>


3.在AndroidManifest.xml中使用主题整个应用程序

<application android:icon="@drawable/icon"
                 android:label="@string/app_name"
                 android:theme="@style/AppTheme">

答案 1 :(得分:1)

好吧,您可以为每个设备的屏幕尺寸配置一个自动缩放的图片,它解释了如何:

http://developer.android.com/guide/practices/screens_support.html

问题在于,如果你想要好的方面,你必须使你的原始图像相当大(与你希望你的应用程序使用的最大分辨率一样大)。然后,当按比例缩小以获得较小的屏幕时,那张大画面仍会消耗更多的内存。

实际上并没有那么多不同的分辨率,可能是7-8个主要分辨率。您应该根据每个目标分辨率制作各种尺寸的背景图像,然后,在您的动作onCreate(...)方法中,您可以执行以下操作来获取当前的设备屏幕分辨率:

Display display = ((WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();

并为其加载适当的背景(调整最终的标题和状态栏大小)