2014-04-16 3 views
0

내 애플리케이션에서는 ActionBar의 색을 무시하고 반투명하게하고 싶습니다. (색상 16 진수 40000000)ActionBar에 액티비티의 배경 이미지 추가

내 액티비티에서도 배경 이미지를 사용하고 있습니다.

문제는 ActionBar가 배경 이미지를 그 부분으로 사용하지 않는 것입니다. 이미지가 작업 표시 줄 아래에서 시작됩니다. (아래 스크린 샷에서 볼 수 있듯이)

ActionBar의 배경색이 흰색이고 반투명 색상이 렌더링 된 것처럼 보입니다.

또 다른 문제는 작업 표시 줄 바로 아래에보기가 표시된다는 것입니다. (아래 이미지 참조)

이보기의 높이는 작업 표시 줄의 높이와 같습니다. 이 Fo로 나는 android docsanswers 많은 &에서 제안한 것처럼 onCreate()

private void setTopPanelHeight() { 
    // Calculating ActionBar height 
    TypedValue tv = new TypedValue(); 
    if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) { 
     // Height in pixels. 
     Integer actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, getResources().getDisplayMetrics()); 
     // Changing panel height. 
     View panelView = findViewById(R.id.view_panel_below_action_bar); 
     FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) panelView.getLayoutParams(); 
     params.height = (int) actionBarHeight; 
     panelView.setLayoutParams(params); 
    } 
} 

< <

, 내가 사용하려고 내에서 코드 아래 사용하고 있습니다 :

<item name="android:windowActionBarOverlay">true</item> 

을 그리고 내 레이아웃을 증가 제안 된 최고 마진 here

`android:layout_marginTop="?android:attr/actionBarSize"` 

하지만 사용하지 마십시오.

내 배경 이미지를 ActionBar에 포함 시키려면 어떻게해야합니까? &도 내 view_below_actionbar & navigation drawer을 방해하지 않습니다.

당신은

enter image description here

+0

내 대답이 도움이 되었습니까? – Libin

답변

1

windowActionBarOverlay.

당신의 안드로이드 지원 라이브러리를 사용하는 경우, 당신은 여기에이

<item name="windowActionBarOverlay">true</item> 

처럼해야 할 것은 ...이 근무하고있다 내 경우

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
    <item name="android:windowActionBarOverlay">true</item> 
    <item name="windowActionBarOverlay">true</item> 
</style> 

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:background">#40000000</item> 
</style> 
0

에서 봐 주셔서 감사이 library -> 당신은 그것은 정확하게 당신이 필요합니까 Play Store

에서 라이브러리의 예를 다운로드 할 수 있습니다 GlassActionBar

.

0

예를 들어 사용자 정의 스타일입니다.

활동

<style name="AppTheme.ActionBar.Translucent" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
    <item name="android:windowActionBarOverlay">true</item> 
    <item name="windowActionBarOverlay">true</item> 
</style> 

<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid"> 
    <item name="background">@color/colorPrimaryTranslucent</item> 
    <item name="backgroundStacked">@color/colorPrimaryTranslucent</item> 
    <item name="backgroundSplit">@color/colorPrimaryTranslucent</item> 
</style> 

의 주요 내용을 오버레이하지만 액션 바 반투명를 원하지만 콘텐츠와 배경 이미지를 오버레이하지 않는 경우 반투명 액션 바에서 다음과 같이 할 수 있습니다.

<style name="AppTheme.ActionBar.Transparent" parent="AppTheme"> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
    <item name="android:windowActionBarOverlay">false</item> 
    <item name="windowActionBarOverlay">false</item> 
    <item name="android:windowBackground">@drawable/background_image</item> 
</style> 

<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid"> 
    <item name="background">@color/colorPrimaryTranslucent</item> 
    <item name="backgroundStacked">@color/colorPrimaryTranslucent</item> 
    <item name="backgroundSplit">@color/colorPrimaryTranslucent</item> 
</style>