我有一个Android应用,用户可以在其中(取消)选择图片。图像显示在嵌套在FrameLayout中的ViewPager中。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
.. ViewPager stuff ..
<CheckBox
android:id="@+id/selectImageCheckbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_marginEnd="16dp"
android:layout_marginBottom="32dp"
android:alpha="0.9"
android:button="@drawable/ic_checkbox_36dp"
android:textColor="@color/colorLightGray" />
</FrameLayout>
该复选框位于右下角。我的问题是,我想根据复选框后面的背景更改复选框可绘制的色彩。如果是暗淡的图像,则白色调效果很好。如果图像非常明亮,或者宽度可能不足以到达复选框,则白色不起作用,而灰色会更好。
我正在努力寻找一种方法来确定放置Checkbox的矩形中的可见颜色。 (我知道如何以编程方式更改色调)。还是有一种更优雅的解决方案来根据周围的颜色更改可绘制的色调?
答案 0 :(得分:0)
首先检查图像的尺寸,然后确定是否到达复选框。
如果没有,则显示灰色。
如果是这样,则可以拍摄图像下半部分的较大部分并确定其整体像素亮度。
使用该值,可以确定哪种颜色最能突出图像。