Ich habe eine Aktivität mit scrollView, die mehrere Tasten und Textviews enthält erstellt. Bevor ich den DatePicker in meine scrollView-Datei hinzufüge, kann der FPS 60 fps beibehalten. Aber ich verstehe nicht, warum der FPS dramatisch abfällt, wenn ich den DatePicker hinzufüge. Und ich habe nicht herausgefunden, dass ein anderes Widget eine so schlechte Leistung hat.android datepicker Animation Rucken wegen schlechter Leistung
Warum bin ich über die Leistung dieses DatePicker besorgt? Weil ich diesen DatePicker in einem Popup-Fenster mit Popup-Animation anzeigen möchte. Die Animation ruckelt wegen der schlechten Performance des DatePickers ständig. Ich möchte es wirklich verbessern. Pease, gib mir einen Hinweis darauf.
Hier ist meine XML-Datei, die ich den DatePicker hinzugefügt habe.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/common_white"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="test_db" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/backup_database"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="backup_database" />
<Button
android:id="@+id/restore_database"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="restore_database" />
</LinearLayout>
</LinearLayout>
</ScrollView>
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/test_result"
android:text="hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<DatePicker
android:id="@+id/test_picker"
android:layout_width="match_parent"
android:layout_height="wrap_content"></DatePicker>
</LinearLayout>
</ScrollView>
</LinearLayout>
Und hier ist, wie ich die Datepicker init
Calendar today = Calendar.getInstance();
int year = today.get(Calendar.YEAR);
int month = today.get(Calendar.MONTH) + 1;
int day = today.get(Calendar.DAY_OF_YEAR);
DatePicker picker = (DatePicker) findViewById(R.id.test_picker);
picker.setCalendarViewShown(false);
picker.updateDate(year, month, day);
GPU-Rendering-Profil ohne Datepicker über 60FPS (Ich kann nicht dieses Bild Post wegen kurzer Reputations) GPU-Rendering-Profil mit Datepicker weniger als 60 FPS
GPU rendering profile with DatePicker less than 60FPS
Hierarchieansicht Analyse mit Datepicker, messen mehr als 1 ms , zeichne mehr als 15 ms und kann natürlich nicht 60FPS erreichen.
Hierarchy View analysis with DatePicker
Und ich glaube, mein Telefon nicht so langsam ist, da es leicht 60 FPS bekam könnte, wenn die Palette Beispiel von der Unterstützung v7 Beispiel ausgeführt wird, die viele Textviews und imageviews hält. Hier ist der Screenshot. (Ich kann nicht dieses Bild Post wegen kurzer Reputations)