0

我有一个活动,其中包含一个以 png 作为背景的LayoutView,以提供与应用程序的其余部分一样好的框架效果,并在此 LayoutView 中加载一个 listView。

我已经在最新版本的 ADT 中测试了具有所有屏幕尺寸和分辨率配置文件的应用程序,并且在所有屏幕上都可以正常工作,但是使用这些配置

-平板电脑 10.1" WXVGA mdpi

-平板电脑 WSVGA 7" mdpi

-Nexus 7 7.17" 800x1280 tvdpi

该列表超出了背景 PNG 的框架,看起来很糟糕。

其他配置(也具有相同的分辨率但不同的密度,反之亦然)有效。

要解决此问题,我必须增加 listView 边距,但这会导致所有其他配置出现问题。

在不改变应用程序的图形设计的情况下,如何解决这个问题?

编辑

我添加了一个问题示例,listView 必须保持在黑色区域但在所描述的情况下超出了该区域 在此处输入图像描述

红色区域是一个LinearLayout1,里面有另一个LinearLayout2和一个ListView,边距很大,因为鲜艳的红色区域包含用作LinearLayout1背景的png框架

4

2 回答 2

0

我会说你需要调整/修改与特定屏幕密度匹配的背景图像。在 android 中,您可以选择使用这些文件夹来存储图像。

drawable、drawable-hdpi、drawable-hdpi-v11、drawable-ldpi、drawable-mdpi等 http://developer.android.com/guide/topics/resources/providing-resources.html

Android 操作系统会根据硬件屏幕分辨率尝试使用最合适的图像。因此,看看使图像更大/更小是否有助于列表视图以实现特定的屏幕密度。

如果不是这种情况,截图肯定会有所帮助:P

于 2012-11-28T06:38:28.773 回答
0

似乎您对所有屏幕和 dpi 都使用相同的背景。

在这种情况下,很难做到(我发现了同样的问题)。

有一些解决方案:

  1. 使用 Ninepatch 作为背景。
  2. 将背景分成几个区域,不要使用边距代替静态大小的视图,如下所示:
<layout>
  <view id="left" size="20dp" background="left.png" />
  <imageview id="content" size="0dp" weight="1" background="center.9.png" />
  <view id="right" size="20dp" background="right.png" />
</layout>

通过使用它,布局与屏幕和 dpi 无关。

于 2012-11-30T03:17:13.353 回答