0

我有一个简单的待办事项列表应用程序,带有一个黑色加号形状的按钮,可以将事情添加到列表中。在 android 2.2 中,黑色加号如下所示:

在此处输入图像描述

然而,在 android 4.1 中,黑色加号看起来像这样:

在此处输入图像描述

加号应该看起来像它在 2.2 中的样子。这是我的相应片段的 xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:id="@+id/widget78"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:focusable="true" android:focusableInTouchMode="true">
<ListView
    android:id="@+id/taskslist"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="10" />
<LinearLayout
    android:id="@+id/widget83"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="12dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp">
<EditText
    android:id="@+id/taskname"
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent"
    android:background="@drawable/edittextbackground"
    android:layout_marginBottom="0dp"
    android:layout_marginLeft="0dp"
    android:layout_marginRight="2dp"
    android:hint=" Add Something :)"
    android:textSize="18sp"
    android:windowSoftInputMode="adjustNothing"
    android:cursorVisible="true"
    android:textColor="#000000"
    android:textCursorDrawable="@null"
    android:layout_weight="9999999"/>
<!--    android:imeOptions="actionGo"
    android:inputType="textImeMultiLine" 
    --> 
<FrameLayout
    android:layout_height="wrap_content"
    android:layout_width="wrap_content">
<Button
    android:id="@+id/addtask"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/small_black_plus"
    android:layout_marginBottom="0dp"
    android:layout_gravity="center"
    android:layout_marginLeft="2dp"
    android:layout_marginRight="0dp"
    android:text="" />
</FrameLayout>
</LinearLayout>
</LinearLayout>

为什么两个版本的布局看起来不同?我怎样才能让它们看起来一样?

4

3 回答 3

1

我认为这可能与您管理资源文件的方式有关。您测试的设备是否具有不同的分辨率?您看到的失真可能是由于操作系统自动缩放您放入 drawable-mdpi 或 drawable-hdpi 文件夹中的资源以用于 xhdpi 屏幕。

以下是有关如何管理资源文件的很好参考,希望对您有所帮助:

http://developer.android.com/guide/practices/screens_support.html

编辑:

另外,看看这个问题:

区别:android:background 和 android:src?

正如其他人所触及的那样,您可以尝试将您的 Button 更改为 ImageView。android 中的任何视图都可以通过设置 onClickListener 来用作按钮,就像使用 Button 一样。如果这样做,请尝试使用android:src属性而不是android:background. 我不认为这是您的问题的原因,因为我不确定不同版本的 Android 会导致您的视图大小不同,但也许在这两个想法之间,您可以找出一些可行的方法。

于 2012-09-19T20:33:29.503 回答
0

这是因为 4.1 中的新 TabHost 允许“可滚动”选项卡。看看如何水平滚动它?

为了使这在两个版本的 Android 上看起来都正确,我将使用资源限定符(在文件夹名称中)为不同的 API 级别创建一个 ViewStub,并为不同的选项卡使用相同的 ID,但明确设置你的字体大小不适合(或更改文本,这取决于您)

于 2012-09-19T20:22:31.130 回答
0

或者您可以使用 ImageView 而不是 Button,它们在您的情况下的工作方式相同。

于 2012-09-19T20:23:19.203 回答