Как использовать новую версию getresources(). GetColor?
Я пытаюсь получить элемент цвета, используя getresources.getColor(resource id)
но андроид говорит мне, что это устарело использование getresources.getColor(resource id, theme)
,
Как мне сказать, какую тему использовать? я пытался R.style.AppTheme
но я получаю ошибку, так как это значение типа int
public class TodoListItemView extends AppCompatTextView {
public TodoListItemView(Context context, AttributeSet attributeSet, int ds) {
super(context, attributeSet, ds);
init();
}
public TodoListItemView(Context context) {
super(context);
init();
}
public TodoListItemView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
init();
}
private Paint marginPaint;
private Paint linePaint;
private int paperColor;
private float margin;
private void init() {
Resources myResources = getResources();
marginPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
marginPaint.setColor(getResources().getColor(R.color.notepad_margin));
linePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
linePaint.setColor(myResources.getColor(R.color.notepad_lines));
paperColor = myResources.getColor(R.color.notepad_paper);
margin = myResources.getDimension(R.dimen.notepad_margin);
}
@Override
public void onDraw(Canvas canvas) {
canvas.drawColor(paperColor);
canvas.drawLine(0, 0, getMeasuredHeight(), 0, linePaint);
canvas.drawLine(0, getMeasuredHeight(), getMeasuredWidth(), getMeasuredHeight(), linePaint);
canvas.drawLine(margin, 0, margin, getMeasuredHeight(), marginPaint);
canvas.save();
canvas.translate(margin, 0);
super.onDraw(canvas);
canvas.restore();
}
}
Любая помощь с благодарностью.
2 ответа
Использование ContextCompat.getColor(context, R.color.your_color);
Спасибо за весь вклад. ContextCompat.getColor работал, чтобы исправить ошибки. Интерфейс, ошибки перечисления были из-за посторонней закрывающей скобки.
Моя единственная жалоба в том, что теперь приложение не запускается. На эмуляторе появляется сообщение о том, что приложение перестало работать. Нет возможности проверить изменения.