0

纽扣

前两个字段是来自 android ICS 的 SMS 应用程序,第三个是我的。
我是这样做的:

 <RelativeLayout 
  android:layout_width="match_parent"  
  android:layout_height="match_parent" >

   <EditText
    android:id="@+id/searchfield"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@+id/newItem"/>

   <ImageButton 
    android:id="@+id/newItem"
    android:layout_height="40dip"
android:layout_width="40dip"
android:layout_alignParentTop="@+id/searchfield"
android:adjustViewBounds="true"
android:contentDescription="Add"
android:layout_alignParentRight="true"/>

 </RelativeLayout>

并且图像是这样设置的:

 Drawable img = getResources().getDrawable( R.drawable.light_send );
 newItem.setBackgroundDrawable(img);

我得到了一个非常糟糕的绘制箭头,并且在向下创建蓝色背景时遇到了问题。我错过了什么吗?

4

1 回答 1

2

对于 ImageButton,您希望将背景设置为具有您正在寻找的颜色的颜色状态列表。至于你想要做一个setImageResource而不是 setBackgroundDrawable 的图像。这样,您可以更改ScaleType以调整图像的绘制方式。我会使用 center_inside 来获得最好看的箭头。在 ImageButton 上,背景的行为与在任何视图上的行为完全相同,图像资源是内容并绘制在背景之上。

于 2012-04-26T15:43:11.983 回答