2013-08-22 1 views
0

У меня есть несколько фигур, и у меня есть один вид. Мне нужно динамически (т. Е. Программно) выбрать фигуру для установки в качестве фона моего представления на основе пользовательских входов. Итак, мой вопрос: кто я программным образом превращаю фигуру в ShapeDrawable или такой?как преобразовать форму в ShapDrawable в android

Я уже смотрю How to change shape color dynamically?. Эти сообщения предполагают, что форма уже прикреплена к виду. Но все мои формы - свободные агенты.

+0

Как вы с информацией о форме? – sriramramani

ответ

0

Я только что узнал, что я могу сделать

myview.setBackgroundResource(R.drawable.my_shape) 
1

Кажется, что это не работает с ShapeDrawable, но взгляните на мой GradientDrawable Например:

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

import android.graphics.drawable.GradientDrawable; 

public class SomeDrawable extends GradientDrawable { 

public SomeDrawable(int pStartColor, int pCenterColor, int pEndColor, int pStrokeWidth, int pStrokeColor, float cornerRadius) { 
    super(Orientation.BOTTOM_TOP,new int[]{pStartColor,pCenterColor,pEndColor}); 
    setStroke(pStrokeWidth,pStrokeColor); 
    setShape(GradientDrawable.RECTANGLE); 
    setCornerRadius(cornerRadius); 
} 

}

и использовать этот класс, как показано ниже

SomeDrawable drawable = new SomeDrawable(Color.parseColor("Start Color Code"),Color.parseColor("Center Color Code"),Color.parseColor("End Color Code"),1,Color.BLACK,00); 
yourLayout.setBackgroundDrawable(drawable); 
Смежные вопросы