我的活动中有标签。当我没有使用app background作为带有以下代码的图像时,布局工作正常。
<style name="AppTheme" parent="AppBaseTheme">
<!-- <item name="android:background">@drawable/imagese4copy</item>
All customizations that are NOT specific to a particular API-level can go here. -->
</style>
和布局看起来像:
当我包含背景图片时,它看起来像:
这是我的MainActivity.java
public class MainActivity extends TabActivity {
private TabHost tabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Resources resource = getResources();
tabHost = (TabHost)findViewById(android.R.id.tabhost);
tabHost.setup();
Intent intentHelper = new Intent(this, Helper.class);
TabSpec tabSpecHelper = tabHost
.newTabSpec("Helper")
.setIndicator("",
resource.getDrawable(R.drawable.ic_launcher))
.setContent(intentHelper);
Intent intentRequest = new Intent(this, HelpRequest.class);
TabSpec tabSpecRequest = tabHost
.newTabSpec("HelpRequest")
.setIndicator("",
resource.getDrawable(R.drawable.ic_launcher))
.setContent(intentRequest);
Intent intentSetting = new Intent(this, SettingsActivity.class);
TabSpec tabSpecSetting = tabHost
.newTabSpec("Setting")
.setIndicator("",
resource.getDrawable(R.drawable.ic_launcher))
.setContent(intentSetting);
tabHost.addTab(tabSpecHelper);
tabHost.addTab(tabSpecRequest);
tabHost.addTab(tabSpecSetting);
tabHost.setCurrentTab(0);
}
和activity_main_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</TabHost>
和AndroidManifest.xml
:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.maptest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.maptest.HelpRequest"
android:label="@string/title_activity_help_request" >
</activity>
<activity
android:name="com.example.maptest.Helper"
android:label="@string/title_activity_helper" >
</activity>
<activity
android:name="com.example.maptest.SettingsActivity"
android:label="@string/title_activity_settings" >
</activity>
</application>
</manifest>
请告诉我包含背景图片时出了什么问题,我该如何纠正呢。
的问候,
Sourabh
答案 0 :(得分:1)
在android dev guide中进行研究后,我发现如果您在应用程序中应用背景图像,它将为应用程序中的所有View设置背景。由于Tab和TextView是一个视图,因此它们也有backgroundImage,因此会扰乱布局。
我不知道是否有更完美的解决方案可用,但将背景图像设置为LinearLayout或RelativeLayout将解决问题,但您必须在每个xml文件上应用此方法以在所有活动中获得相同的背景。
示例:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background_darkgreyrough"
tools:context=".Overview" >