2014-06-09 26 views
5

Düğmenin sağ üst köşesinde hizalamak istediğiniz bir onay kutusuna benzeyen bir resmim var. Göreceli düzeni denediniz ancak istenilen sonucu elde edemediniz. İstenen sonuca ulaşmak için herhangi bir öneriniz var mı? Ben Framelayout ama checbox görüntü kullanılarak denedi Android: Düğmenin sağ üst köşesinde bulunan görüntüyü hizalayın

What i want

Checkbox

resmin önce Düğmesi kullanmak Farouk'ın önerileri sonra

<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> 

gizli kalır. İşte tasarımcıda gördüğüm şey aşağıdadır.

FrameLayout Output

yukarı ve sağa onay kutusu görüntünün nasıl hareket edeceğini Emin değilim. Eğer çözüm istiyoruz durumda

, işte burada:

<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> 

Çözüm:

Image

+0

Ne FrameLayout kullanmaya ne dersiniz? –

+0

Cevabımı kontrol edin – Aniruddha

+0

Düğme ImageView'den önce gelmelidir. O zaman işe yarayacak. –

cevap

10

Bu şuna benzer:

enter image description here

Sadece android ile oynamak: paddingTop = "- 10dp" istediğiniz gibi. İşte

kodu:

<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> 
+0

Denedim, ancak buton üzerindeki layout_margin = "7dp" bana istenilen tuş şeklini vermiyor. Düğmeyi kenar boşluğundan çıkardığımda ve Imageview'in paddingTop'unu ayarlamayı denediğimde kırpılır.Hangisinin beklenen davranış olduğunu düşünüyorum. Dolgu ve kenar boşluğu ile oynamaya çalışacağız. – Signcodeindie

+0

Marjı ve dolguyu ayarlayarak çalışmayı başarabildim. Teşekkürler! – Signcodeindie

+0

Yardım için sevindim :) –

3

Kontrol bu bir, umarım size yardımcı olacaktır. Here is the image

<?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> 

DÜZENLEME sonra ImageView biraz daha onay kutusunu taşımak android:layout_marginLeft="-10dip"android:layout_marginLeft="-20dip" için artırmak istiyorsanız. Sadece onunla oyna. :)

+0

Yardımlarınız için teşekkürler, ancak bir onay kutusu gibi görünen bir resim. Bir onay kutusu değil. Resmi, Android'deki normal bir düğmenin sağ üst köşesinde hizalamak istersiniz. – Signcodeindie

+1

Onay kutusunu ImageView ile değiştirin. Bu genel düzen. Cevabımı kabul et, size yardımcı olursa, aynı sorunla karşılaşan diğer insanlar için kolay olacak. – Aniruddha

İlgili konular