Android按钮在4.1中拉伸但在2.2中不拉伸

时间:2012-09-19 20:19:28

标签: android android-layout android-version

我有一个简单的待办事项列表应用程序,其中包含一个黑色加号的按钮,可以将内容添加到列表中。在android 2.2中,black plus看起来像这样:

enter image description here

但是,在Android 4.1中,黑色加号看起来像这样:

enter image description here

加号应该看起来像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>

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

3 个答案:

答案 0 :(得分:1)

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

以下是有关如何管理资源文件的绝佳参考,希望这会有所帮助:

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

编辑:

此外,请看一下这个问题:

Difference: android:background and android:src?

正如其他人所说,您可以尝试将Button更改为ImageView。通过设置onClickListener,可以将android中的任何视图用作按钮,方法与使用Button相同。如果您这样做,请尝试使用android:src属性而不是android:background设置您的图片可绘制资源。我不认为这是你的问题的原因,因为我不确定Android的不同版本会导致你的视图大小不同,但也许在这两个想法之间,你可以找出有用的东西。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

或者您可以使用ImageView而不是Button,它们在您的情况下也一样。