【发布时间】:2023-03-24 18:25:01
【问题描述】:
我有一个使用MapView 和ImageButton 控件的Android 应用程序(移动到用户的当前位置),我已在右上角添加。我遇到的问题是 ImageButton 控件的背景太透明了,但是用 android:background="#BBFFFFFF" 更改它会改变背景的大小并删除您通常在按下按钮时看到的蓝色“闪光” - 我希望有两种品质保留。
我从这样的事情开始:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="my api key"
/>
<ImageButton android:id="@+id/googlemaps_select_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_marginTop="13dp"
android:layout_marginRight="13dp"
android:src="@drawable/device_access_location_found"/>
</RelativeLayout>
实现如下所示:
那么我补充一下:
android:background="#BBFFFFFF"
我明白了:
请注意,虽然这基本上是我想要的不透明度级别,但更改背景会影响填充,并且按下时也不会显示蓝色“闪光”(这显然没有在这个问题中说明)。
所以我的问题是,如何在未按下状态下仅更改背景颜色/不透明度,同时保留按钮的其他视觉质量?我简要阅读了有关 Android 样式和主题的内容,但甚至无法弄清楚该按钮的样式/主题来自何处,以及如何在保留所有其他视觉功能的同时覆盖背景颜色/不透明度。
【问题讨论】:
-
发布您的完整布局 xml,因为解决方案取决于您添加不同视图的顺序。
-
@Luis 将其余布局添加到问题中。
-
这很奇怪...您将
ImageButton添加到MapView上,您将获得具有高透明度的图像(在第一张图像中)。必须发生两件事之一,您的原始图像(png 文件)正在使用较低的 alfa 值,或者您正在代码中的某处以编程方式更改它。 -
图片来自 Google 提供的标准 Android 设计图标,是的,它似乎具有透明背景。这并不能解释背景大小的差异/点击时蓝色“闪光”行为的损失,这是我真正想弄清楚如何解决的问题......
标签: android background styles android-mapview