相关疑难解决方法(0)

自定义半透明Android ActionBar

我一直在搜索互联网(例如Android文档,这里的答案等),以获得我认为是一个相当微不足道的问题的答案.您如何实现像Google音乐YouTube中的半透明操作栏(链接是图像示例)?

我希望视频内容是全屏的,不受操作栏的约束/推送,同时仍然利用内置UI组件的优势.我显然可以使用完全自定义的视图,但如果可能的话,我宁愿利用ActionBar.

表现

<activity
    android:name="videoplayer"
    android:theme="@android:style/Theme.Holo"
    android:launchMode="singleTop"
    android:configChanges="keyboardHidden|orientation"/>
Run Code Online (Sandbox Code Playgroud)

活动

// Setup action bar
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
View customActionBarView = getLayoutInflater().inflate(R.layout.player_custom_action_bar, null);
actionBar.setCustomView(customActionBarView,
                        new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT,
                                                   R.dimen.action_bar_height));
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
Run Code Online (Sandbox Code Playgroud)

菜单

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/button1"
        android:icon="@drawable/button1"
        android:showAsAction="always"/>

    <item
        android:id="@+id/button2"
        android:icon="@drawable/button2"
        android:showAsAction="always"/>
</menu>
Run Code Online (Sandbox Code Playgroud)

自定义ActionBar视图

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/custom_action_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center"
    android:background="@color/TranslucentBlack">

    <!--Home icon with arrow-->
    <ImageView
        android:id="@+id/home"
        android:src="@drawable/home"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"/>

    <!--Another image-->
    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:visibility="visible"/>

    <!--Text if no image-->
    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:gravity="center_vertical"
        android:visibility="gone"/>

    <!--Title--> …
Run Code Online (Sandbox Code Playgroud)

android android-3.0-honeycomb android-4.0-ice-cream-sandwich android-actionbar android-5.0-lollipop

53
推荐指数
5
解决办法
5万
查看次数

在透明的ActionBar中部分显示ImageView

Google地图应用程序具有透明的ActionBar,通过该ActionBar可以看到地图.

在此输入图像描述

我可以使用以下方法设置ActionBar的透明度:

<style name="Theme.MyTheme" parent="android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/ActionBar</item>
</style>

<style name="ActionBar" parent="@android:style/Widget.Holo.ActionBar">
    <item name="android:background">#64000000</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但是如何在ActionBar后面显示我的ImageView?

android actionbarsherlock

35
推荐指数
3
解决办法
2万
查看次数

如何删除ActionBar和选项卡之间的分隔符

我正在尝试删除ActionBar和标签之间的分隔符,但我还没有成功.我<item name="android:actionBarDivider">@color/tab_color</item>在我的style.xml中尝试了这个,但没有.用几句话我想有这样的事情: 在此输入图像描述

这是我的style.xml:

<style name="AppTheme" parent="Theme.AppCompat.Light"/>

<style name="Theme.Styled" parent="@style/Theme.AppCompat.Light">
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowDisablePreview">true</item>
    <item name="android:actionBarItemBackground">@drawable/selectable_background_example</item>
    <item name="android:actionBarTabStyle">@style/Widget.Styled.ActionBar.TabView</item>
    <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="android:actionBarTabTextStyle">@style/MyCustomTabView</item>
    <item name="android:actionBarDivider">@color/tab_color</item>
</style>

<style name="Widget.Styled.ActionBar.TabView"
    parent="@style/Widget.AppCompat.Light.ActionBar.TabView">
    <item name="android:background">@drawable/tab_indicator_ab_example</item>
    <item name="android:width">30dp</item>
</style>

<style name="Widget.Styled.ActionBar"
    parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="android:background">@color/tab_color</item>
    <item name="android:backgroundStacked">@drawable/ab_stacked_solid_example</item>
    <item name="android:backgroundSplit">@color/tab_color</item>
    <item name="android:textColor">@color/tab_text</item>
    <item name="android:titleTextStyle">@style/MyActionBarTextColor</item>
    <item name="android:actionBarDivider">@color/tab_color</item>
</style>

<style name="MyActionBarTextColor" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/tab_text</item>
</style>

<style name="MyCustomTabView" parent="Theme.AppCompat.Light">
    <item name="android:textColor">#ffffff</item>
    <item name="android:textSize">14dp</item>
    <item name="android:textStyle">bold</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的 在此输入图像描述

tabs android divider android-actionbar

6
推荐指数
1
解决办法
7199
查看次数

删除Android中操作栏和主屏幕之间的线或分隔线

如何删除操作栏和主屏幕之间的线或分隔线?如何在android中更改此分隔符的颜色?提前致谢.

android android-actionbar

4
推荐指数
2
解决办法
1万
查看次数

Android中的透明Actiobar

我试图给我的行动栏透明效果.我使用了以下一行来使它以这种方式工作,但奇怪的是在我的Nexus 5上我可以看到酒吧即将到来,但在我的银河系nexus我根本看不到它.

我不知道为什么N5会出现这种情况?如何解决这个问题?

这是代码:

    getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setDisplayShowHomeEnabled(false);
    ActionBar actionBar = getActionBar();
    actionBar.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    actionBar.setStackedBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    setContentView(R.layout.profile);
Run Code Online (Sandbox Code Playgroud)

以下是运行Jelly Bean(4.3)的Galaxy nexus和运行kitkat(4.4.4)的Nexus 5的屏幕截图

Galaxy Nexus:完美呈现透明动作条:

在此输入图像描述

Nexus 5:显示透明操作栏:(显示水平线)

在此输入图像描述

更新2:

我设法通过使用以下样式删除N5上的行

  styles.xml in Values-v14 folder

  <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"></style>
  <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo"></style>

  then added theme to specific activity in manifext:

      <activity
        android:name=".Profile"
        android:label="@string/profile"
        android:theme="@style/CustomActionBarTheme"
        android:screenOrientation="portrait" >
Run Code Online (Sandbox Code Playgroud)

但是在此活动中我的所有文本,对话框格式都已更改.它变得黑暗.即使我以编程方式更改对话框的主题,它也不会更改.我不确定是什么问题?有人可以帮我解决这个问题吗?

更新1:根据@erakitn建议:我尝试了以下几个更改:

<!-- Transparent ActionBar Style -->
<style name="CustomThemeTransparent" parent="AppBaseTheme">
    <item name="android:background">@android:color/transparent</item>
    <item name="background">@android:color/transparent</item>
</style>

<!-- Activity Theme with transparent ActionBar -->
<style name="CustomThemeTransparentLight" parent="AppBaseTheme"> …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar

3
推荐指数
1
解决办法
2034
查看次数