2010-08-12 5 views
3

J'ai placé une image dans chaque élément ListView sur le côté droit, Dans la mise en page xml, j'ai défini sa largeur et sa longueur comme 20dip, sorte de petit, et je trouve qu'il est difficile de cliquer dessus 20 dip, j'espère que la longueur de celui-ci ne change pas, tandis que sa hauteur de remplissage complet du parent, je essayé:Comment rendre une image plus facile à cliquer?

android:layout_width="20dip" 
    android:layout_height="fill_parent" 

mais il ne fonctionne pas.

Ci-dessous mon xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/item" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:padding="6dip" 
android:background="#FFFFFF"> 

<ImageView android:id="@+id/avatar" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginRight="6dip" 
    android:src="@drawable/default_happy_face" /> 

<RelativeLayout 
    android:orientation="vertical" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_toRightOf="@id/avatar" 
      android:layout_toLeftOf="@+id/optionImg"> 

    <!-- some stuff unrelated--> 

</RelativeLayout> 

<!-- v Pay attention here v --> 
<ImageView android:id="@+id/optionImg" 
    android:layout_width="20dip" 
    android:layout_height="fill_parent" 
    android:layout_marginLeft="15dip" 
    android:paddingLeft="5dip" 
    android:adjustViewBounds="true" 
    android:background="@drawable/option_normal" 
    android:layout_alignParentRight="true" 
    android:layout_centerVertical="true"/> 
</RelativeLayout> 

Si vous avez regarder attentivement le client Twitter pour Android, vous constaterez que l'image à droite de chaque élément ListView est assez facile de cliquer (même si vous avez pas cliquez sur l'image mais dites par exemple en haut du bouton). Je veux savoir comment faire ça.

twitter image http://www.freeimagehosting.net/uploads/889d10c435.png

Toute personne? de l'aide?

Répondre

1

Est-il possible que l'image de twitter soit réellement plus grande que le cercle avec le triangle? Essayez de remplir l'image avec un arrière-plan transparent plus grand.

+0

non, en fait je l'utilise directement l'image de Twitter (je décompresse le apk, et obtenir l'image), il est exactement aussi grande qu'elle regarde, je me demande peut-être qu'ils ont fait la pleine longueur du ImageView remplissant le parent, donc le 【ImageView】 est plus grand que le 【image】 à l'intérieur, à travers j'ai essayé mais ne sais toujours pas comment faire. – DiveInto

0

EDIT: Ceci est une vieille question, mais je nettoie néanmoins ma réponse. Je ne suis pas certain que la création d'une image transparente (ou élément d'interface utilisateur) soit la meilleure solution ici, mais elle semble plausible.

Cette question est liée à la création d'un ListView transparent (How To Make a Listview Transparent in Android). Les réponses suggèrent d'éditer le fichier styles.xml pour inclure quelque chose dans le code suivant (tiré de la réponse de Jacky).

android:background="@drawable/bg" 
android:cacheColorHint="#00000000" 

De même, cette publication traite de la mise en œuvre d'activités transparentes (How to Create Transparent Activity in Android). Le code de la réponse acceptée suit.

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="Theme.Transparent" parent="android:Theme"> 
    <item name="android:windowIsTranslucent">true</item> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:backgroundDimEnabled">false</item> 
    </style> 
</resources> 

Enfin, voici une question générale sur l'opacité de l'image/transparence dans Android (Android: Make image opaque/transparent). La réponse acceptée suggère d'utiliser le code suivant pour dessiner des formes transparentes:

Bitmap buffer = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444); 
buffer.eraseColor(Color.TRANSPARENT); 
Questions connexes