九个修补的图像是否可缩小?

时间:2012-10-25 06:08:26

标签: android android-layout nine-patch

我有九个背景补丁图片。它是802px x 286px(两个w& h中的2px由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。图像是否可以缩小以适应宽度? (换句话说,如果我使用9xatch图像100x100用于200x200的设备,我们知道它的优点和扩展。但问题是,如果用于50x50的设备,会发生什么?)

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

  3. 为什么示例文本不是中间对齐的?

  4. 为什么行图像会过度缩放?

1 个答案:

答案 0 :(得分:3)

  1. 我认为当你没有告诉零件在水平方向上缩放时,九个修补后的图像不会缩小或拉伸。图像只能从那些2像素缩放,所以最小宽度是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_vertical。您是否使用单个TextView作为列表项,是否可以为列表项布局提供

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