如何设置所有活动的背景?

时间:2016-06-13 20:36:07

标签: android android-layout

如何为adnroid应用程序中的所有活动设置背景并保持其宽高比?

我正在使用android:windowBackground风格,但我不知道如何保持背景图像的宽高比。

是否只能手动为所有活动添加ImageView背景信息?

2 个答案:

答案 0 :(得分:1)

您可以将自己的基本活动定义为抽象类,并使应用程序中的所有其他活动从中扩展:

abstract class BaseActivity extends Activity {
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        // this is a generic way of getting your root view element
        View rootView = (View) findViewById(android.R.id.content);
        rootView.setBackgroundDrawable(getResources().getDrawable(R.drawable.your_image));        
    }
}

然后你应该在你想要的活动中扩展它:

public class YourActivity extends BaseActivity

答案 1 :(得分:0)

您可以在styles.xml

中设置背景
<style name="AppTheme.FullBackground" parent="AppTheme">
    <item name="android:background">#757575</item>
</style>

(其中AppTheme可能是您已定义的主题,我只是在那里使用了灰色,但它可以是一个可绘制的颜色)

然后添加到您的清单

<activity 
    android:name=".FooActivity"
    android:theme="@style/AppTheme.FullBackground">
</activity>

由于您无论如何都必须向Manifest添加活动,因此这是检查所有活动是否具有背景的好方法。当然,您仍然可以扩展BaseActivity并且只允许BaseActivity类维护主题设置。