Как сделать gradleиентный фон в андроиде

Я хочу создать фон gradleиента, как на картинке. но это не может из-за того, что centerColore был распространен, чтобы покрыть нижний и верхний.

Как сделать фоновый рисунок, как показано ниже? или Как я могу сделать маленький ceterColor, который не распространяется? У вас есть идея?

Это тот фон, который я хочу.

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

Это тот фон, который я сделал.

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

Это код в xml фоновой кнопки выше

    

Вы можете создать этот «полуgradleиентный» вид, используя xml Layer-List, чтобы объединить верхние и нижние «полосы» в один файл. Каждая полоса представляет собой xml-форму.

См. Предыдущий ответ на SO для подробного руководства: многоgradleиентные фигуры .

Попробуйте следующее:

      

Визуальные примеры помогают в этом вопросе.

Boilerplate

Чтобы создать gradleиент, вы создаете xml-файл в res / drawable. Я вызываю my_gradient_drawable.xml :

     

Вы устанавливаете его на фоне некоторого вида. Например:

  

тип = «линейный»

Установите angle для linear типа. Он должен быть кратным 45 gradleусов.

  

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

тип = «радиальный»

Установите gradientRadius для radial типа. Использование %p означает, что это процент от наименьшего размера родителя.

  

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

тип = «зачистка»

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

  

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

центр

Вы также можете изменить центр развертки или радиальных типов. Значения представляют собой доли ширины и высоты. Вы также можете использовать нотацию %p .

 android:centerX="0.2" android:centerY="0.7" 

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

Следующая ссылка может помочь вам http://angrytools.com/gradient/. Это создаст пользовательский фон gradleиента в андроиде, как в Photoshop.

Сначала вам нужно создать gradient.xml следующим образом

     

Тогда вам нужно упомянуть выше gradleиент на фоне макета. Как следует

    

Или вы можете использовать код, что бы вы ни думали в PSD:

  private void FillCustomGradient(View v) { final View view = v; Drawable[] layers = new Drawable[1]; ShapeDrawable.ShaderFactory sf = new ShapeDrawable.ShaderFactory() { @Override public Shader resize(int width, int height) { LinearGradient lg = new LinearGradient( 0, 0, 0, view.getHeight(), new int[] { getResources().getColor(R.color.color1), // please input your color from resource for color-4 getResources().getColor(R.color.color2), getResources().getColor(R.color.color3), getResources().getColor(R.color.color4)}, new float[] { 0, 0.49f, 0.50f, 1 }, Shader.TileMode.CLAMP); return lg; } }; PaintDrawable p = new PaintDrawable(); p.setShape(new RectShape()); p.setShaderFactory(sf); p.setCornerRadii(new float[] { 5, 5, 5, 5, 0, 0, 0, 0 }); layers[0] = (Drawable) p; LayerDrawable composite = new LayerDrawable(layers); view.setBackgroundDrawable(composite); } 
 //Color.parseColor() method allow us to convert // a hexadecimal color string to an integer value (int color) int[] colors = {Color.parseColor("#008000"),Color.parseColor("#ADFF2F")}; //create a new gradient color GradientDrawable gd = new GradientDrawable( GradientDrawable.Orientation.TOP_BOTTOM, colors); gd.setCornerRadius(0f); //apply the button background to newly created drawable gradient btn.setBackground(gd); 

См. Здесь https://android–code.blogspot.in/2015/01/android-button-gradient-color.html.

Почему бы не создать изображение или изображение с 9 патчами и использовать его?

В приведенной ниже ссылке есть хороший справочник о том, как это сделать:

http://android.amberfog.com/?p=247

Если вы настаиваете на использовании Shape, попробуйте сайт ниже (выберите Android внизу слева): http://angrytools.com/gradient/

Я создал аналогичный gradleиент (не точный) к тому, который у вас есть по этой ссылке: http://angrytools.com/gradient/?0_6586f0,54_4B6CD6,2_D6D6D6&0_100,100_100&l_269

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

         

Interesting Posts

Почему возврат 0 необязателен?

Подтвердить удаление модального / диалогового windows с загрузкой Twitter?

Внешние антенны того же маршрутизатора на разных этажах

Где пропал сценарий JavaFX?

Селектор на цвет фона TextView

Расчет скорости соединения / загрузки

Раздел Windows Vista не будет изменять размер с помощью обычных инструментов. Любой совет?

Настройки напряжения процессора, установленные в BIOS, всегда остаются по умолчанию

Почему «десятичный» не является допустимым типом параметра атрибута?

Поддержание открытого соединения Redis с помощью BookSleeve

Как обращаться к MySQL из нескольких streamов одновременно

Можно ли скопировать все файлы Windows 7 с одного HD на другой и загрузиться с нового HD?

Java Class.forName () из удаленного каталога

Каков максимальный размер для общего значения предпочтений Android?

Ошибка 80073701 при установке Windows 7 с пакетом обновления 1

Давайте будем гением компьютера.