[英]Android : Align image on top right hand corner of button
I have an image which looks like a checkbox, that i would like to align on top right hand corner of button.我有一个看起来像一个复选框的图像,我想在按钮的右上角对齐。 Have tried relative layout but could not achieve desired result.
尝试过相对布局但无法达到预期的效果。 Any suggestion to achieve the desired result?
有什么建议可以达到预期的结果吗?
I have tried using Framelayout but the checbox image remains hidden我曾尝试使用 Framelayout 但复选框图像仍然隐藏
<FrameLayout
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/filter_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/checkmark"
android:layout_gravity="right"
/>
<Button
android:id="@+id/filter"
style="@style/Widget.Button.White.BlueText.BlueStroke"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Filter" />
</FrameLayout>
After Farouk's suggestions to use Button before image.在 Farouk 建议在图像之前使用 Button 之后。 Here is the code
这是代码
<FrameLayout
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/filter"
style="@style/Widget.Button.White.BlueText.BlueStroke"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Filter" />
<ImageView
android:id="@+id/filter_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/checkmark"
android:layout_gravity="top|right"
/>
</FrameLayout>
Here is what i see on designer.这是我在设计师身上看到的。
Not sure how to move the checkbox image up and right.不确定如何向上和向右移动复选框图像。
In case you want the solution, here it is:如果你想要解决方案,这里是:
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="80dp" >
<Button
android:id="@+id/filter"
style="@style/Widget.Button.White.BlueText.BlueText.FrameImage"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sort" />
<ImageView
android:id="@+id/widget_title_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"
android:src="@drawable/checkmark" />
</FrameLayout>
<style name="Widget.Button.White.BlueText.BlueText.FrameImage" parent="@android:style/Widget.Button">
<item name="android:background">@drawable/white_button_blue_stroke_bg_selector</item>
<item name="android:gravity">center</item>
<item name="android:textColor">@color/white</item>
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
</style>
Solution:解决方案:
It look like this : 它看起来像这样:
Just play with the android:paddingTop="-10dp"
as you like. 只需使用
android:paddingTop="-10dp"
。
Here the code : 这里的代码:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_icon"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/filter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="7dp"
android:background="#0000FF"
android:gravity="center"
android:paddingBottom="25dp"
android:paddingTop="25dp"
android:text="Sort"
android:textColor="#FFFFFF" />
<ImageView
android:id="@+id/widget_title_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"
android:adjustViewBounds="true"
android:paddingTop="-10dp"
android:scaleType="fitStart"
android:src="@drawable/checkbtn" />
</FrameLayout>
Check this one, hopefully it will help you. 检查一下,希望它会对你有所帮助。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_widget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dip"
android:focusable="true" >
<ImageView
android:id="@+id/icon"
android:layout_width="60dip"
android:layout_height="60dip"
android:layout_marginTop="8dp"
android:background="@drawable/ic_launcher"
android:scaleType="center" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="-10dip"
android:layout_toRightOf="@+id/icon"
android:gravity="center"
android:text="" />
</RelativeLayout>
EDIT If you want to move checkbox little further to imageview then increase the android:layout_marginLeft="-10dip"
to android:layout_marginLeft="-20dip"
. 编辑如果你想进一步移动复选框到imageview然后增加
android:layout_marginLeft="-10dip"
到android:layout_marginLeft="-20dip"
。 Just play with it. 只是玩它。 :)
:)
If someone wants to add the dot over a drawable (create a new drawable with layer-list with dot at right top corner)如果有人想在可绘制对象上添加点(使用图层列表创建一个新的可绘制对象,右上角带有点)
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/any_drawable">
</item>
<item android:drawable="@drawable/active_dot" android:gravity="right|top"/>
</layer-list>
active_dot.xml active_dot.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" android:useLevel="true"
android:dither="true">
<size android:height="12dip" android:width="12dip"/>
<solid android:color="#B01212"/>
</shape>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.