我尝试为GoogleMaps实施Map View balloon
,但我阻止了气球的布局
气球的大小必须是内容大小,但是,它需要背景可绘制的大小,因为它更大。因为我有一个非常大的气球9-patch image
,由其他人提供,一个小气球内容占据所有屏幕(可绘制的大小)。
我看到了这个相关问题:How to wrap content views rather than background drawable?,这正是我想要的,但它没有正确答案(使用FrameLayout
会产生同样的问题,因为ImageView
src会使用wrap_content
或fill_parent
来获取可绘制的大小。
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:id="@+id/balloon_main_layout"
android:orientation="horizontal" android:clickable="true"
android:focusable="true" android:focusableInTouchMode="true"
android:layout_width="wrap_content" android:background="@drawable/info_bulle_selector">
<LinearLayout android:id="@+id/linearLayout1"
android:layout_height="wrap_content" android:layout_width="0dp"
android:layout_weight="1">
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content" android:text="TextView"
android:id="@+id/balloon_item_title" android:textColor="#ffffff"></TextView>
</LinearLayout>
<ImageView android:id="@+id/balloon_close"
android:layout_marginLeft="5dp" android:src="@drawable/fermer_selector"
android:scaleType="fitXY" android:layout_height="30dp"
android:layout_width="30dp"></ImageView>
</LinearLayout>
这是我所拥有的屏幕(必须删除红色空间):
如果您有任何想法解决这个问题(我在设计带背景图像的布局时经常会遇到这个问题),那就太棒了。
提前致谢。
编辑:
这里是九补丁png:
答案 0 :(得分:2)
当我理解你的问题时,你有两个选择:
1)使气球9-patch图像更小,尤其是9-patch图像的不可伸缩和填充区域,因此它可以更好地适应较小的内容。有关更多文档,请参阅:http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch
编辑:
正如我在第1点中所注意到的,你的9补丁图片太大了。它的宽度为330像素,高度为74像素。由于您的内容未填满整个背景图片的宽度和高度,因此您的布局中会有空格。
作为一种可能的解决方案,请缩小您的9补丁图像。我将图像缩小到150px的宽度和34px的高度,我得到了以下结果:
这是缩小的9补丁图像: