Я хотел бы реализовать регулируемый размер текста в моем приложении для удобства чтения - довольно многие из моих пользователей просили об этом.Идея состоит в том, что пользователь будет указывать предпочтение большему или меньшему тексту, я сохраню его в SharedPreference, а затем буду использовать это значение всякий раз, когда загружаю новое действие.
Очевидно,Я мог бы загрузить каждое представление, которое отображает текст всякий раз, когда я инициализирую макет действия, а затем изменять размер текста для всех из них по имени, но это кажется многословным, подверженным ошибкам и сложным в обслуживании.Вместо этого я бы предпочел увеличить / уменьшить размер на основе существующего размера или, что еще лучше, существующего стиля (чтобы, если бы я заботился, 12 могло стать 16, а 20 могло стать 30).
Я думаю, что в моемВ идеале я мог бы загрузить все свои стили, определенные в XML, перед вызовом setContentView, изменить их, «сохранить» их, и эти изменения вступят в силу для макетов, которые я загружаю с этого момента.Прочитав немного больше, это кажется невозможным: «Инструменты Android SDK компилируют ресурсы вашего приложения в двоичный файл приложения во время сборки», а затем в классе Resources или в классе AssetManager ничего нет, что говорит о том, что я могу изменить эти стили во время выполнения.время.
Мне кажется, что мне приходится обходить мой макет в каждом onCreate, находить размер текста для каждого представления, для которого это значение релевантно, и устанавливать размер текста, скажем, на 2 sp больше или меньше (вычислениеsp на основе плотности экрана).
У кого-нибудь есть мысли по этому поводу?Может быть, некоторые из вас уже проходили через это?