2016-11-19 2 views
0

Пропущенные 181 кадр! Приложение может делать слишком много работы над своей основной темойПропущенные 181 кадр ... Android

, которая появляется, когда я запускаю код и нажимаю на действие ... почему это появляется и как избавиться от него? вот мой код

public class MainActivity extends AppCompatActivity { 
    public void Dropin(View v){ 
    ImageView Counter = (ImageView)v; 
    Counter.setTranslationY(-1000); 
    Counter.setImageResource(R.drawable.red); 
    Counter.animate().translationYBy(1000f).setDuration(300); 

} 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 
} 
+3

«Приложение может делать слишком много работы над своей основной нитью» говорит все , по моему мнению. –

+2

Как сказал @Rotwang, попробуйте добавить «логическую работу» в asynctask (просто пример) или в другой класс. Не ставьте тяжелую работу там, где основной поток пользовательского интерфейса. – Carlton

+1

@ Карлтон прав, но вы должны знать, что вы не можете получить доступ к пользовательским объектам из фоновых потоков ... Я не знаю, как «setTranslation» и «анимировать» работают из фона, но «Counter.setImageResource» определенно не будут работать в AsyncTask или Thread. –

ответ

1

У вашего кода пока нет какой-либо вычислительной тяжелой работы. Единственное место - вызов Counter.setImageResource (R.drawable.red). Возможно, ваше изображение имеет гораздо больший размер, чем вам нужно, и Android должен изменить его размер. Другая причина - использовать формат .png() для ресурсов, потому что переход должен сделать много вычислений для форматов, таких как .jpg и .bmp

+0

Спасибо, что это сработало! Я использовал формат .png –

Смежные вопросы