我想将相同的背景图片设置为我的所有应用布局。我的应用支持从迷你手机到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中分离设计和功能。
感谢。
答案 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();
并为其加载适当的背景(调整最终的标题和状态栏大小)