3

我有一个九个补丁图像作为背景。它是 802 像素 x 286 像素(两个 2 像素由 9patchtools 自动添加)。

main.xml 看起来像:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/crown"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/crown">
<ListView
    android:id = "@+id/mainmenulist"
    style="@style/MainMenuList"
    android:dividerHeight="2.5dp"/>
</RelativeLayout>

styles.xml 看起来像:

<resources
xmlns:android="http://schemas.android.com/apk/res/android">
<style name="MainMenuList">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">fill_parent</item>
    <item name="android:cacheColorHint">@android:color/transparent</item>
    <item name="android:listSelector">@android:color/transparent</item>
    <item name="android:divider">@null</item>
    <item name="android:gravity">right</item>
</style>
<style name="MainMenuRow">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColor">#000000</item>
    <item name="android:gravity">right|center</item>
    <item name="android:padding">0dp</item>
</style>
</resources>

values文件夹中的themes.xml:

<resources
xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppTheme" parent="android:Theme.Light.NoTitleBar.Fullscreen">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@color/mycustomblue</item>
</style>
</resources>

manifest.xml 的 mpart:

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

这是行图像:

它的背景(皇冠)图像:

输出应该是这样的:

但它看起来像这样:

我的问题是:

  1. 我的背景图像是 802x286。我的设备是带有 android 4.0.4 和 720x1280(WxH) 的 Galaxy S3。图像可以缩小以适应宽度吗?(换句话说,如果我将 9patch 图像 100x100 用于 200x200 的设备,我们知道它是好的并按比例放大。但这里的问题是,如果用于 50x50 的设备,会发生什么?)

  2. 为什么我的应用程序不是全屏的?

  3. 为什么示例文本没有居中和右对齐?

  4. 为什么行图像放大不当?

4

1 回答 1

3
  1. 我认为当你不告诉部分水平缩放时,九个九点图像不会缩小或拉伸。图像只能从这 2pxes 缩放,所以最小宽度是 798px,你可能需要一个更小的图像。

  2. android:windowNoTitle 控制标题栏是否显示,而不是状态栏。标题栏是您活动的一部分,但状态栏是系统的一部分。你可能需要什么 android:windowFullscreen

    <!-- Variant of {@link #Theme} with no title bar -->
    <style name="Theme.NoTitleBar">
        <item name="android:windowNoTitle">true</item>
    </style>
    
    <!-- Variant of {@link #Theme} that has no title bar and no status bar -->
    <style name="Theme.NoTitleBar.Fullscreen">
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>
    
  3. Right 和 center 冲突,你可以使用 right|center_vertical。您是否使用单个 TextView 作为列表项,您可以为您提供列表项布局吗

  4. 这可能是由主题中的 android:listPreferredItemHeight 属性引起的。使用显式 layout_height 可能会解决此问题。

于 2012-10-25T06:35:30.993 回答