Я искал его повсюду в StackOverflow и, похоже, не нашел ответа на мой вопрос. Я запускаю устройство API v.16, и ниже приводится способ обновления фона для TextView, который использует Drawable в качестве фона. Все остальное работает - TextViews с успехом меняют свой формат textSize и высоту/ширину, в неотъемлемой части общего кода. Любые идеи о том, что может быть проблемой? Приложение не останавливается, просто нет изменений в толщине штриха. Фактически, TextView полностью утрачивает свой фон в изменении. Исходный фон - это угловой сглаженный прямоугольник с определенной шириной хода, который должен быть вдвое меньшим по размеру, а также шириной его хода. После изменения фон в TextView вообще не отображается.Настройка фонового рисунка на TextView не работает
if (textViewsArrayList.size() != 0) textViews.get(textViewsArrayList.size() - 1).post(new Runnable() {
@Override
public void run() {
for (counter = 0; counter < textViewsArrayList.size(); counter++) {
textViewsArrayList.get(counter).getLayoutParams().height = (int)
(textViewsArrayList.get(counter).getLayoutParams().height/2);
textViewsArrayList.get(counter).getLayoutParams().width = (int) (textViewsArrayList.get(counter).getLayoutParams().width/2);
((TextView) textViewsArrayList.get(counter)).setTextSize(TypedValue.COMPLEX_UNIT_PX, (int) (((TextView) textViewsArrayList.get(counter)).getTextSize()/2));
GradientDrawable background = (GradientDrawable) textViewsArrayList.get(counter).getBackground();
background.setStroke((int) (4/displayMetrics.density/2), (int) Color.parseColor("#FFA500"));;
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
((TextView) textViewsArrayList.get(counter)).setBackground((Drawable) background);
} else {
((TextView) textViewsArrayList.get(counter)).setBackgroundDrawable((Drawable) background);
}
}
}
});
В то время как XML для TextView в вопросе:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="320dp"
android:layout_height="90dp"
android:tag="layout">
<TextView
android:id="@+id/textview"
android:layout_height="68dp"
android:layout_width="match_parent"
android:background="@drawable/drawable_xml"
android:layout_marginLeft="6dp"
android:layout_marginRight="6dp"
android:layout_marginTop="7dp"
android:tag="textview_in question"/>
etc.
Что касается вытяжки XML:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="4dp"
android:color="#FF6600" />
<corners
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp"/>
<solid android:color="#FFFFFF" />
</shape>
удалить андроид: background = "@ drawable/drawable_xml" из вашего xml. Только установите фон из java-кода – Anjali
эй, ваш код идеально подходит, когда я проверил ваш код, и я также ответил на ваш вопрос. –
@ Anjali: попробовал, но это не сработало. Спасибо, в любом случае. – Dmitri