2015-03-10 4 views
2

Я пытаюсь сделать мою панель инструментов прозрачной, как на изображении ниже. Я пытаюсь добиться этого программно.Сделать панель инструментов прозрачной, как в Newsstand App

enter image description here

В чем разница между полупрозрачный и прозрачной панелью в Android?

Пожалуйста, ознакомьтесь с приведенным ниже кодом и изображением ниже, чтобы понять, к чему я до сих пор. Пожалуйста, укажите мне в правильном направлении.

public void hideToolbar() { 
    // toolbar.setVisibility(View.GONE); 
    toolbar.getBackground().setAlpha(0); 

    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { 
     getWindow().setFlags(
       WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, 
       WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
    } 
} 

public void showToolbar() { 
    // toolbar.setVisibility(View.VISIBLE); 
    toolbar.getBackground().setAlpha(255); 

    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { 

     WindowManager.LayoutParams attrs = getWindow().getAttributes(); 
     attrs.flags &= (~WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 
     attrs.flags &= (~WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
     getWindow().setAttributes(attrs); 
     getWindow().clearFlags(
       WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); 

     getWindow().setStatusBarColor(
       Color.parseColor(Const.Colors.COLOR_STATUS_BLUE)); 
    } 
} 

enter image description here enter image description here

Я хочу как панель инструментов и строка состояния быть прозрачными. Сообщите мне, нужен ли вам какой-либо из моих xmls или другого кода.

+0

Вы пробовали 'toolbar.setBackgroundResource (Color.TRANSPARENT);'. –

ответ

0

Я могу прояснить ваше понимание разницы между Прозрачным и Прозрачным.

  • Прозрачный означает, что вы можете полностью просмотреть объект. Мы можем взять стекло для примера.
  • Прозрачный означает состояние между непрозрачным и прозрачным, вы можете также называть его полупрозрачным. Из полупрозрачного объекта вы не можете проглядеть изображение позади него четко, НО некоторое количество света может пройти через этот объект. Мы можем взять бумагу в качестве примера полупрозрачного объекта . Когда мы помещаем бумагу выше источника света (например, факел), вы можете видеть свет, но не факел.

Я не профессионал в кодировании для Android, но я дал вам, насколько я знаю.

0

Во избежание цвета содержимого, находящегося за панелью инструментов, можно столкнуться с цветом элементов/текста панели инструментов (например, стрелка вверх/назад), многие реализации панели инструментов на самом деле не прозрачны, но полупрозрачны с градиентом.

Вы можете получить это со следующим кодом:

<?xml version="1.0" encoding="utf-8"?> 

<android.support.v7.widget.Toolbar 
    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:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="@drawable/background_toolbar_translucent" /> 

background_toolbar_translucent.xml

<?xml version="1.0" encoding="utf-8"?> 

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <gradient 
     android:angle="270" 
     android:endColor="@android:color/transparent" 
     android:startColor="@color/black_alpha_40"/> 
</shape> 

colors.xml

<color name="black_alpha_40">#66000000</color> 

Вы можете играть с различными значениями по градиенту, я обнаружил, что для белых элементов черный 40% отлично работает.

Смежные вопросы