无法设置我的EditText的背景

时间:2014-04-27 11:08:25

标签: java android xml android-fragments android-activity

我在我的片段xml文件中有这个:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.gelasoft.answeringball.MainActivity$PlaceholderFragment" 
    android:background="@drawable/wg_blurred_backgrounds_14"
    >

    <ImageView
        android:id="@+id/sphereIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:contentDescription="@string/magicBallDescr"
        android:src="@drawable/rsz_31mystic" />

    <LinearLayout
        android:id="@+id/table"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/sphereIcon"
        android:orientation="vertical" >

        <TextView 
            android:id="@+id/txtAnswer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
        />

        <EditText
            android:id="@+id/txtQuestion"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:hint="@string/textHint"
            android:inputType="textMultiLine"
            android:lines="6" />

        <Button 
            android:id="@+id/btnAsk"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" 
            android:text="@string/btnAskQ"     
            android:paddingEnd="@dimen/activity_vertical_margin"      
         />

    </LinearLayout>
</RelativeLayout>

以下是它的外观:

enter image description here

现在我想在EditText上设置一个不同的背景图像,所以我编辑了xml并使它像:

<EditText
    android:id="@+id/txtQuestion"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:hint="@string/textHint"
    android:inputType="textMultiLine"
    android:lines="6" 
    android:background="@drawable/background"/>

但是现在我在EditText上设置的背景正在占据LinearLayout空间。

以下是更改后在编辑器中的显示方式

enter image description here

为什么要占据整个地方并隐藏按钮?

我在这里缺少什么?我确定它很小,但我无法发现它。

2 个答案:

答案 0 :(得分:2)

您正在遭受内存不足异常,这在堆栈跟踪的最后几行中是可见的。

解决方案是减少用作背景的drawable的大小。它只是一个EditText,它的小尺寸并不能保证高分辨率文件作为背景。
这可以使用各种图像编辑软件完成,从Photoshop到Microsoft Paint 用油漆:
第1步:在Paint中打开图像 第2步:点击&#34;调整大小&#34;顶部的按钮,位于工具箱旁边。
第3步:将图像的大小缩小到适当的值 第4步:将图像保存在可绘制的文件夹中 第5步:如果您正在使用Eclipse,请右键单击您的项目并单击&#34;刷新&#34;
第6步:再次启动您的应用程序。

现在扩展EditText:

您将EditText高度设置为wrap_content。当您将图像设置为背景时,它也会成为它的内容。因此,你的EditText会膨胀以适应它的新背景。

解决方案是将高度硬编码为
android:layout_height =&#34; 30dp&#34;虽然使用它的能力取决于您的要求。

答案 1 :(得分:2)

我不确定,但我认为你的背景图片太大了。你可以尝试小宽度和高度类型的图像替换它。希望你能解决这个问题。祝你好运!