image - 安卓:在按钮或者图片按钮上合并文字和图片

  显示原文与译文双语对照的内容

我想有一个按钮,添加动态图像( 作为背景), 取决于run-time期间发生了什么,上面一些文本/图像。

如果我使用的是,我甚至不能添加文本。 如果我使用按钮可以添加文本只定义一个图像与 android:drawableBottom 和类似的xml属性定义

然而这些属性只有结合文本&图像 x- y-dimensions,意味着我可以画一个图片在我的文字,但不低于( z-axis定义为从显示中出来)/在我的文本。

关于如何执行这里操作的建议? 一个想法就是扩展按钮或 ImageButton和覆盖 draw() -method 。 但我目前的知识级别,我并不真正知道如何做这个( 三维渲染) 。 也许有更多经验的人知道一个解决方案或者至少是一些开始的指针?

时间:

你可以叫 setBackgroundDrawable()Button 设置背景的按钮。

任何文字将显示在背景之上。

如果你在寻找类似于xml的东西,有: android:background 属性,它的工作方式相同。

这个问题有一个更好的解决方案。

使用普通按钮并使用drawableLeft和重力属性。


<Button
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:drawableLeft="@drawable/my_btn_icon"
 android:gravity="left|center_vertical"/>

这样你就可以得到一个按钮,它在按钮左边显示一个 icon,在 icon 垂直居中的地方显示文本。

只是替换


android:background="@drawable/icon"

打开方式


android:background="@android:color/transparent"
android:drawableTop="@drawable/[your background image here]"

izz是个不错的技巧。 ; )

只要使用一个LinearLayout并假装它是一个按钮- 设置背景和点击是关键:


<LinearLayout
 android:id="@+id/button"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@android:drawable/btn_default"
 android:clickable="true"
 android:orientation="horizontal"> 

 <ImageView
 android:id="@+id/img"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center_vertical"
 android:layout_marginLeft="5dp"
 android:src="@drawable/image"/>

 <TextView
 android:id="@+id/textView2"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center_vertical"
 android:layout_margin="5dp"
 android:text="Do stuff"/>
</LinearLayout>


 <Button android:id="@+id/imeageTextBtn" 
 android:layout_width="240dip"
 android:layout_height="wrap_content"
 android:text="Side Icon With Text Button"
 android:textSize="20sp"
 android:drawableLeft="@drawable/left_side_icon" 
/> 

你可以使用 drawableTop ( 也是 drawableLeft,等等) 下面的图像和文本图像通过添加重力 left|center_vertical


<Button
 android:id="@+id/btn_video"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentRight="true"
 android:layout_centerVertical="true"
 android:background="@null"
 android:drawableTop="@drawable/videos"
 android:gravity="left|center_vertical"
 android:onClick="onClickFragment"
 android:text="Videos"
 android:textColor="@color/white"/>

你可以使用:


 <Button
 android:id="@+id/reset_all"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginRight="5dp"
 android:layout_weight="1"
 android:background="@drawable/btn_med"
 android:text="Reset all"
 android:textColor="#ffffff"/>

 <Button
 android:id="@+id/undo"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginLeft="5dp"
 android:layout_weight="1"
 android:background="@drawable/btn_med"
 android:text="Undo"
 android:textColor="#ffffff"/>

我把一个图像作为背景,并添加了文本。

...