2016-06-13 45 views
3

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

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

是否只有手动为所有活动添加背景为ImageView的方法?

+3

制作属于自己的'BaseActivity'类,让所有其他Activity类都可以扩展吗? –

+0

这听起来像个好主意。我怎样才能为此设置背景? –

+0

但是,我发现这不是一个理想的解决方案,可以在其上绘制额外的内容。 http://stackoverflow.com/questions/16135984/full-screen-background-image-in-an-activity –

回答

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 
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> 

既然你已经添加活动无论如何,这是检查所有活动是否具有背景的好方法。当然,您仍然可以扩展BaseActivity,并且只有BaseActivity类保持主题设置。

+0

那么,我**已经**使用'android:background'来设置背景图像,但它是strethced和丑陋 –

+0

您的问题有windowBackground,而不是背景,但我看到你在说什么,我发现这个帖子http://stackoverflow.com/questions/5902230/how-to-implement-an-androidbackground-that-doesnt -伸展 –