Intereting Posts
Как клонировать удаленный репозиторий git с Android Studio? Обновление Eclipse & Android SDK действительно багги по состоянию на 12/07/2012 NextFocusDown не работает с AutoCopmleteTextView Установить <String> в android sharedpreferences не сохраняет силу Игры Google Play – активность, автоматически вызывающая beginUserInitiatedSignIn () Не удается получить push-уведомление от Urban Airship Как выбрать устройство LogCat, отображаемое в eclipse? Android – Как показать диалог после завершения деятельности Являются ли onCreate и onRestoreInstanceState взаимоисключающими? Android получает список цветов из ресурса Как загрузить класс из файла jar, упакованного в мой .apk-файл? Отображение Gridview в соответствии с фактической высотой в прокрутке Есть ли способ избежать использования полного имени пакета в xml с пользовательскими представлениями (Android)? Как опубликовать обновление для приложения на рынке Android? «Активность по умолчанию не найдена» для загружаемого приложения, созданного с помощью шаблона Android Studio

Полосатый фон с двумя цветами?

Я пытаюсь создать нижнюю панель с фоном, подобным этому:

Введите описание изображения здесь

В настоящее время я использую следующий код:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <gradient android:endColor="#000000" android:startColor="#696969" android:centerColor="#696969" android:angle="270" /> <stroke android:color="#696969" /> <padding android:left="2dp" android:top="3dp" android:right="2dp" android:bottom="3dp" /> </shape> </item> </selector> 

Но результат выглядит следующим образом:

Введите описание изображения здесь

Как это сделать, два цветных фона? Пожалуйста, предложите .. Спасибо

Solutions Collecting From Web of "Полосатый фон с двумя цветами?"

Как отмечали другие, девятипатчин был бы идеальным в этой ситуации (и не займет много памяти) . Работа с XML не является оптимальной. Вот что вы можете попробовать:

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:bottom="20dp"> <shape android:shape="rectangle" > <size android:height="20dp" /> <solid android:color="#ff0000" /> </shape> </item> <item android:top="20dp"> <shape android:shape="rectangle" > <size android:height="20dp" /> <solid android:color="#0000ff" /> </shape> </item> </layer-list> 

В этом случае ваше мнение считается высоким до 40dp

Это список слоев с двумя блоками разных цветов. Проблема с XML-подходом заключается в том, что вы не можете настроить высоту блоков в процентах (= 50%). Вы должны использовать половину фактического размера в dp. Это означает, что вы должны настраивать этот чертеж каждый раз, когда вы изменяете высоту / макет вида. Девятикратная корректировка будет автоматически изменена.

Создайте gradient.xml в / res / drawable:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFFFF" android:endColor="#00000000"/> </shape> 

И в вашем файле макета main.xml в / res / layout:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/gradient"> </LinearLayout> 

Вы можете указать угол, заменив значение android: angle и начальный / конечный цвет, заменив android:startColor and android:endColor .

Я нашел решение для вас, если вы готовы отказаться от использования XML для его рисования …

Рисунок: Градиенты и тени на кнопках

Это то, что ты хочешь! Но разные цвета, размер и кнопка …

 Bitmap bmResult = Bitmap.createBitmap(buttonWidth, buttonHeight, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bmResult); Paint paint = new Paint(); paint.setShader(new LinearGradient (0, 0, 0, bmResult.getHeight()/2, 0xFF284560, 0xFF284060, TileMode.MIRROR)); canvas.drawPaint(paint); paint.setShader(new LinearGradient (0, 0, 0, bmResult.getHeight()/2, 0x55FFFFFF, 0x22FFFFFF, TileMode.CLAMP)); paint.setMaskFilter(new BlurMaskFilter(3, BlurMaskFilter.Blur.NORMAL)); canvas.drawRect(0, 0, bmResult.getWidth(), bmResult.getHeight()/2, paint) 

… меняя цвет, конечно.

Я не уверен, что вы можете использовать XML-макет и ссылаться на эту Java-кнопку самостоятельно или вам придется в конечном итоге сделать весь ваш макет на Java, а не XML … это будет другим вопросом для SO.

Надеюсь, это поможет. Хотя, возможно, это мое невежество, но я бы также рекомендовал маршрут 9patch.

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

Вы можете просто создать изображение и повторить его вдоль координаты x.

Вы можете использовать изображение 9png в качестве фона.
См. http://developer.android.com/guide/developing/tools/draw9patch.html

редактировать :
Вы можете следовать этому руководству http://android10.org/index.php/articlesother/279-draw-9-patch-tutorial