我正在开发默认电话应用程序。它提供了呼叫UI。
我的努力:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#e91e63"
tools:context=".CallActivity">
<TextView
android:id="@+id/NumberField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:text="@string/CallerPhoneString"
android:textSize="30sp"
android:textStyle="bold"
android:layout_marginBottom="5dp"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/CallTime"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/NumberField"
android:text="@string/CallingTypeString"
android:textSize="30sp"
android:gravity="center_horizontal"/>
<LinearLayout
android:id="@+id/layout_functions"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="bottom"
android:layout_marginBottom="4dp" >
<LinearLayout
android:id="@+id/hold_join_speaker"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:baselineAligned="false"
android:layout_marginBottom="25dp" >
<LinearLayout
android:id="@+id/hold_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1">
<Button
android:id="@+id/hold_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@drawable/not_on_hold"
android:layout_gravity="center" />
<TextView
android:id="@+id/hold_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hold_text_string"
android:textSize="20sp"
android:layout_gravity="center"
android:textColor="@android:color/black"/>
</LinearLayout>
<LinearLayout
android:id="@+id/join_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1">
<Button
android:id="@+id/reject_text_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@drawable/join_calls"
android:layout_gravity="center" />
<TextView
android:id="@+id/reject_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/join_text_string"
android:textSize="20sp"
android:layout_gravity="center"
android:textColor="@android:color/black"/>
</LinearLayout>
<LinearLayout
android:id="@+id/speaker_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1">
<Button
android:id="@+id/speaker_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@drawable/speaker_off"
android:layout_gravity="center" />
<TextView
android:id="@+id/speaker_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/speaker_text_string"
android:textSize="20sp"
android:layout_gravity="center"
android:textColor="@android:color/black"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/mute_sms_record"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:baselineAligned="false"
android:layout_marginBottom="70dp" >
<LinearLayout
android:id="@+id/mute_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1">
<Button
android:id="@+id/mute_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@drawable/mic_on"
android:layout_gravity="center" />
<TextView
android:id="@+id/mute_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/mute_text_string"
android:textSize="20sp"
android:layout_gravity="center"
android:textColor="@android:color/black"/>
</LinearLayout>
<LinearLayout
android:id="@+id/sms_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1">
<Button
android:id="@+id/sms_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@drawable/in_call_sms"
android:layout_gravity="center" />
<TextView
android:id="@+id/sms_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sms_text_string"
android:textSize="20sp"
android:layout_gravity="center"
android:textColor="@android:color/black"/>
</LinearLayout>
<LinearLayout
android:id="@+id/record_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1">
<Button
android:id="@+id/record_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@drawable/in_call_record"
android:layout_gravity="center" />
<TextView
android:id="@+id/record_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/record_text_string"
android:textSize="20sp"
android:layout_gravity="center"
android:textColor="@android:color/black"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ActionLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:layout_marginBottom="10dp" >
<com.ncorti.slidetoact.SlideToActView
android:id="@+id/slideToAnswer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="10dp"
android:elevation="8dp"
app:area_margin="8dp"
app:text="Slide to answer"
app:text_color="@color/colorWhite"
app:text_size="20sp"
app:text_style="bold"
app:slider_height="90dp" />
<Button
android:id="@+id/btn_End_Call"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@drawable/disconnect"
android:layout_gravity="center"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
在设备上运行时的外观:
出了什么问题?
显示网络塔楼,电池电量百分比的系统区域(我认为是通知抽屉)由于类似白色,因此完全无法读取,我该如何将其保留为默认值或将其更改为某种适当的颜色,从而使用户能够阅读内容轻松地放在系统抽屉中。
在此先感谢,感谢您的帮助。
编辑2 :(按需)
使用的主题是-AppTheme.NoActionBar
这是清单中提到的主题:
<activity
android:name=".CallActivity"
android:autoRemoveFromRecents="true"
android:label="@string/title_activity_call"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter android:priority="800">
<action android:name="android.intent.action.ACTION_CALL" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
和我的Theme Styles.xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay"
parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay"
parent="ThemeOverlay.AppCompat.Light" />
</resources>
谢谢。
编辑3 :(尝试过建议):
我将样式编辑为:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:statusBarColor">@color/colorBlue</item>
</style>
<style name="AppTheme.AppBarOverlay"
parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay"
parent="ThemeOverlay.AppCompat.Light" />
</resources>
android:statusBarColor
添加为绿色编辑:4(我还尝试了什么)
它通过
以编程方式更改了颜色this.getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.colorBlue));
仍然我希望明智地更改其样式。
编辑5 :(成功完成)
v21 / Styles.xml具有创建问题的默认颜色。正如@Md建议并回答的那样。 Asaduzzaman更改此Perticular Styles文件可以通过以下方法解决此问题:
<item name="android:statusBarColor">@android:color/black</item>
现在,该线程很漂亮,有3个答案
- 通过活动以编程方式
- 通过更改v21以上和v21的样式
- 也使用
BarUtils
答案 0 :(得分:1)
在您的android:statusBarColor
v21
Theme
<item name="android:statusBarColor">@android:color/holo_red_light</item>
您可能在其中一种主题变体中使用了android:color/transparent
,例如:
<item name="android:statusBarColor">@android:color/transparent</item>
如果是这样,请从主题中删除。
答案 1 :(得分:1)
如何使用我的开源android utils库BarUtils的Android-utils。
您只需要:
BarUtils#setStatusBarColor()
设置状态栏颜色; BarUtils.addMarginTopEqualStatusBarHeight(/*root view of your layout*/)
或在布局中使用fitsystemwindow
属性。 这将首先使用透明的状态栏,然后添加具有您设置为状态栏的给定颜色的假视图。
例如,您可以引用另一个项目MainActivity的MVVMs。
希望有帮助。
答案 2 :(得分:0)
在主题v21中使用android:statusBarColor,它将需要Api级别21。
<item name="android:statusBarColor">@color/colorBlue</item>
您可以使用values-v19中的样式从Api 19起更改颜色。
值-v19中的样式:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
//transparent status bar
<item name="android:windowNoTitle">true</item>
<item name="android:windowTranslucentStatus">true</item>
</style>
这将使状态栏透明,您可以将背景设置为更改状态栏颜色。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.setStatusBarColor(getResources().getColor(R.color.statusBarColor));
}