在我的应用程序中,我有各种颜色的TextViews / Buttons。问题是它们在屏幕上太亮/太强烈。
是否有一项功能可以降低它们在屏幕上的亮度/强度?
屏幕截图:
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#e4fbff" >
<TextView
android:id="@+id/tvSearchHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text=" "
android:textSize="15dp" />
<Button
android:id="@+id/btnSearchHomeDate"
android:layout_width="270dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:background="@drawable/circle4"
android:shadowColor="#A8A8A8"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="5"
android:text="Date"
android:textSize="30sp" />
<Button
android:id="@+id/btnSearchHomeGame"
android:layout_width="270dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginTop="4dp"
android:background="@drawable/circle"
android:shadowColor="#A8A8A8"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="5"
android:text="Game"
android:textSize="30sp" />
<Button
android:id="@+id/btnSearchHomeMedValues"
android:layout_width="270dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginTop="4dp"
android:background="@drawable/circle3"
android:shadowColor="#A8A8A8"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="5"
android:text="Meditation Values"
android:textSize="30sp" />
<Button
android:id="@+id/btnSearchHomeAttValues"
android:layout_width="270dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginTop="4dp"
android:background="@drawable/circle2"
android:shadowColor="#A8A8A8"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="5"
android:text="Attention Values"
android:textSize="30sp" />
<Button
android:id="@+id/btnSearchHomeScore"
android:layout_width="270dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginTop="4dp"
android:background="@drawable/circle4"
android:shadowColor="#A8A8A8"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="5"
android:text="Score"
android:textSize="30sp" />
</LinearLayout>
按钮引用的圆形XML可绘制示例:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#0e84de" />
<stroke
android:width="1dp"
android:color="#4a6176" />
<padding
android:left="10dp"
android:right="10dp"
/>
<corners android:radius="8dp" />
</shape>
答案 0 :(得分:0)
为什么不制作可画的小透明物。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#330e84de" />
<stroke
android:width="1dp"
android:color="#4a6176" />
<padding
android:left="10dp"
android:right="10dp"
/>
<corners android:radius="8dp" />
</shape>
以此为背景。我用的是透明色。所以#0e84de变为#330e84de。
答案 1 :(得分:0)
如果您不想/不想在Drawable中更改颜色的值,则必须在运行时更改它。
检索颜色的RGB值,将其转换为HSV并降低饱和度,转换回RGB并将新颜色应用于Drawable。 (参见维基百科的转换公式)
当你可以简单地改变Drawable中的颜色属性时,有点矫枉过正。