2014-11-19 9 views
4

У меня есть некоторые анимационные переходы для моей деятельности. Поэтому, когда начинается действие, в нем появляются некоторые угасающие анимации. Вот код:Как включить «Масштаб анимации перехода» в «Опции разработчика» программно?

Intent intent = new Intent(this, NextActivity.class); 
startActivity(intent); 
overridePendingTransition (android.R.anim.fade_in, android.R.anim.fade_out); 

Проблема в том, что эти анимации не будет работать, когда «Transition Масштаб анимации» в разделе «Параметры разработчика» выключен. Поэтому я ищу способ включить эту функцию программно, чтобы убедиться, что мои анимации показаны. Есть ли способ установить «Масштаб анимации перехода» на «Масштаб анимации 1x»?

+2

Если кто-то на самом деле отключить эти анимации в опциях для разработчиков, то вы не думаете, что они на самом деле не нужны анимации? Параметры разработчика называются «Параметры разработчика» по какой-либо причине. Ни один нормальный пользователь никогда не коснется их или не отключит эти анимации без веской причины. Кроме того, вы все равно не могли программно изменять настройки устройства, как это, и эти анимации всегда включены по умолчанию. –

+0

Проблема в том, что я работаю над настраиваемой версией Android. И, к сожалению, эта функция отключена по умолчанию. У меня нет доступа к исходному коду ОС, чтобы изменить настройки по умолчанию. Поэтому я должен найти способ программно решить эту проблему. @ XaverKapeller –

+1

Ну, вы не можете исправить это в своем приложении, потому что это не имеет никакого отношения к вашему приложению. Если этот параметр отключен по умолчанию в этом андроиде, это либо ошибка, либо намеренно по уважительной причине. В любом случае это не ваша проблема, так как ваше приложение работает на 100% отлично, как и должно быть, и ваш ролик для Android - это то, что не работает так, как должно быть. Вы не отвечаете за исправление ошибок или недосмотров в самой ОС. Просто сэкономьте время и оставьте это, это не ваша проблема и недоступна для вас. –

ответ

8

После нескольких дней поиска я нашел код, который может включать (или отключать) «Масштаб анимации перехода».

 Settings.Global.putInt(getContentResolver(), Global.TRANSITION_ANIMATION_SCALE, 1); 

Но есть большая проблема с этим кодом И если вы спросите, Что проблема? Я бы сказал, эта строка кода необходим это разрешение:

< uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>

который предоставляется только в системе Apps. Поэтому ваше приложение должно быть системным приложением.

Этот вопрос о создании приложения системы: How to make my application system

UPDATE

и, как сказал @TripeHound, мы можем

Показать диалог сообщает пользователю, что приложение будет выглядеть гораздо лучше , если они включили эту опцию (с возможностью не выводить сообщение еще раз, если они действительно этого хотят)

Как открыть настройки параметров разработчика?

Таким образом:

startActivityForResult(new Intent(android.provider.Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS), 0); 
+1

Итак, лучшее, что вы могли бы сделать, это прочитать параметр и, если он не включен, отобразит диалоговое окно, в котором пользователь сообщит, что приложение будет выглядеть намного лучше, если включить этот параметр (с возможностью не отображать сообщение еще раз, если они действительно хотят этого). – TripeHound

+0

@TripeHound: да, это хорошая идея. Поэтому я должен найти способ прочитать настройки. Ты знаешь как ? –

+1

Нет, и я не могу _know_ это возможно. Но я бы предположил, что 'Settings.Global.getInt (getContentResolver(), Global.TRANSITION_ANIMATION_SCALE) должен находиться в режиме боя. – TripeHound