如何使图像更容易点击?

时间:2010-08-12 14:50:16

标签: android layout imageview

我在右侧的每个ListView项目中放置了一个图像,在布局xml中,我将其宽度和长度设置为20dip,有点小,我发现它很难点击它导致图像只占用20 * 20浸,我希望它的长度不变,而它的高度充满了父母, 我试过了:

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

但它不起作用。

下面是我的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>

如果你仔细观察Android的Twitter客户端,你会发现每个ListView项目右侧的图像都很容易点击(即使你没有点击图像但是例如在按钮顶部说)。我想知道怎么做。

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

任何人?任何帮助?

2 个答案:

答案 0 :(得分:1)

推特图片实际上是否可能比带有三角形的圆圈大?尝试使用更大的透明背景填充图像。

答案 1 :(得分:0)

编辑:这是一个老问题,但我正在清理我的答案。我不确定创建透明图像(或UI元素)是最好的解决方案,但它看起来似乎是合理的。

此问题与创建透明ListView(How To Make a Listview Transparent in Android)有关。答案建议编辑styles.xml文件以包含以下代码中的内容(取自Jacky的答案)。

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

同样,这篇文章涵盖了实施透明活动(How to Create Transparent Activity in Android)。接受的答案中的代码如下。

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

最后,这是关于Android(Android: Make image opaque/transparent)中图像不透明度/透明度的一般问题。接受的答案建议使用以下代码来绘制透明形状:

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