Я хотел бы создать ту же границу этого LinearLayout, как в примере:
В этом примере мы видим, что граница не одинакова во всем linearLayout. Как я могу создать это с помощью XML-файла?
На данный момент я могу создать только простую границу вокруг LinearLayout, вот так:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners
android:radius="1dp"
android:topRightRadius="0dp"
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp" />
<stroke
android:width="1dp"
android:color="#E3E3E1" />
<solid android:color="@color/blanc" />
</shape>
android
border
android-linearlayout
wawanopoulos
источник
источник
background
свойство для этого ... создайте один XML-файл с такой формой, как прямоугольник, цвет и эффект тени для него, и установите его в качестве фона для линейного макета ..Ответы:
Попробуй это..
источник
"0dp"
с"1dp"
в ответ Харихаран в.<gradient>
в вашем,<shape>
чтобы усилить эффект границы, а также, если это действительно тот эффект, который нужен вашему интерфейсу, а не только сплошная цветная рамка.Вот почему CardView существует. CardView | Разработчики Android
Это просто FrameLayout, который поддерживает повышение в устройствах перед леденцом на палочке.
Чтобы использовать это, вам нужно добавить зависимость
build.gradle
:источник
Я получаю лучшие результаты, используя 9 патчей.
Вы можете просто создать отдельную графику из 9 патчей, используя следующий редактор: http://inloop.github.io/shadow4android/
Пример:
9 патчей:
Результат:
Источник:
источник
хорошо, я знаю, что уже слишком поздно. но у меня было такое же требование. я решил так
1. Сначала создайте XML-файл (пример: border_shadow.xml) в папке «drawable» и скопируйте в нее приведенный ниже код.
2. Теперь на макете, где вы хотите тень (пример: LinearLayout) добавить это в Android: фон
и это сработало для меня.
источник
Это так просто:
Создайте нарисованный файл с градиентом, как это:
для тени под взглядом
below_shadow.xml
для тени над взглядом
above_shadow.xml
и так далее для правой и левой тени просто меняем угол наклона градиента :)
источник
В качестве альтернативы, вы можете использовать изображение с 9 патчами в качестве фона для макета, что позволяет использовать более «естественные» тени:
Результат:
Поместите изображение в вашу
/res/drawable
папку.Убедитесь, что расширение файла
.9.png
не.png
Кстати, это модифицированный (уменьшенный до минимального размера квадрата) существующий ресурс, который находится в папке ресурсов API 19 SDK.
Я оставил красные маркеры, так как они не кажутся вредными, как показано в инструменте draw9patch.
[РЕДАКТИРОВАТЬ]
Около 9 патчей, на случай, если вы никогда не имели с ними ничего общего.
Просто добавьте его в качестве фона вашего просмотра.
Области, отмеченные черным (слева и сверху), будут растягиваться (вертикально, горизонтально).
Области, помеченные черным (справа, снизу), определяют «область содержимого» (где можно добавить текст или представления - вы можете называть немаркированные области «отступами», если хотите).
Учебное пособие: http://radleymarx.com/blog/simple-guide-to-9-patch/
источник
Вы создаете файл .xml в drawable с именем drop_shadow.xml:
Затем:
источник
Используйте эту строку и, надеюсь, вы достигнете лучшего результата;
Использование:
android:elevation="3dp"
отрегулируйте размер так, как вам нужно, и это лучший и самый простой способ получить тень, как кнопки и другие тени по умолчанию для Android. Дайте мне знать, если это сработало!источник
Если у вас уже есть граница от фигуры, просто добавьте высоту:
источник
1. Сначала создайте xml-файл с именем shadow.xml в папке «drawable» и скопируйте в него приведенный ниже код.
Затем добавьте список слоев в качестве фона в свой LinearLayout.
источник
источник
Я знаю, что уже поздно, но это может кому-нибудь помочь.
Вы можете использовать constraintLayout и добавить следующее свойство в xml:
источник
Я нашел лучший способ справиться с этим.
Вам нужно установить сплошной прямоугольник на макете.
Используйте этот код -
ViewCompat.setElevation(view , value)
На родительском макете установлено
android:clipToPadding="false"
источник
ViewCompat.setElevation()
метода на классе ViewCompat:public void setElevation(View view, float elevation) {}
. Как видите, это не реализовано. Я действительно сомневаюсь, что это поможет, и действительно удивляюсь, если вы действительно проверили свой собственный ответ, лол