Ответ 1
У меня была та же проблема. В моем случае у меня был GridView, который элементы в сетке могли бы изменить цвет границы пользователем во время выполнения.
Итак, в gridviewAdapter для этой сетки я сделал следующее в методе getView (тот, который генерирует представление для адаптера)
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.griditem, null);
GradientDrawable gradientDrawable = (GradientDrawable) convertView.getBackground();
gradientDrawable.setStroke(2, mColor);
convertView.invalidate();
return convertView;
}
mColor - это int, который представляет цвет, как и в xml файлах. В java-коде вместо "#" мы используем "0x" для определения его в формате AARRGGBB. Например, используйте 0xFF000000 для 100% непрозрачного BLACK и 0xFF0000FF для 100% непрозрачного голубого. Объясняя это здесь, так как google api "полезно" говорит, что цвет int - это "цвет штриха".
Это решило мою проблему... Я думаю, вы можете попробовать что-то похожее для своего дела.