This is my first android app, I'm transitioning from iOS development. I'm trying to change to a different activity. However, it takes multiple seconds (about 3) for my new empty activity to appear.
Here is my code to send to transition to the new activity:
public void openStats(View v) {
startActivity(new Intent(MainActivity.this, StatsActivity.class));
}
Here is my onCreate of my new activity:
public class StatsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.stats_page);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
I can't figure out why this is taking so long? I'm testing on a Samsung Galaxy S5 also.
This is the log when opening the new activity:
D/ViewRootImpl: ViewPostImeInputStage processPointer 0
D/ViewRootImpl: ViewPostImeInputStage processPointer 1
I/Timeline: Timeline: Activity_launch_request id:com.example.NAME.reflexmath time:53311650
W/ResourcesManager: getTopLevelResources:/data/app/APPNAME2/base.apk / 1.0 running in APPNAME rsrc of package null
D/SecWifiDisplayUtil: Metadata value : none
D/ViewRootImpl: #1 mView = com.android.internal.policy.PhoneWindow$DecorView{a1db7f7 I.E...... R.....ID 0,0-0,0}
D/ViewRootImpl: MSG_RESIZED_REPORT: ci=Rect(0, 72 - 0, 0) vi=Rect(0, 72 - 0, 0) or=1
W/DisplayListCanvas: DisplayListCanvas is started on unbinded RenderNode (without mOwningView)
I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@58ff7f6 time:53313401
And stats_page.xml
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
android:orientation="vertical"
android:background="@android:color/holo_blue_light">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.1"></LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="0.8">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srcCompat="@drawable/reflexmath5"
android:id="@+id/imageView10"
android:layout_weight="1"
android:layout_gravity="center"
android:cropToPadding="false"
android:adjustViewBounds="false"
android:scaleType="fitCenter" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.1"></LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="0.7"
android:orientation="horizontal"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:weightSum="1"
android:id="@+id/progView">
<ImageView
android:layout_width="0dp"
android:layout_height="match_parent"
app:srcCompat="@drawable/hbmlogo"
android:id="@+id/imageView11"
android:elevation="1dp"
android:layout_weight="0.3"
android:scaleType="fitCenter" />
<ProgressBar
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_height="match_parent"
android:id="@+id/xpBar"
android:scaleY="5"
android:progress="50"
android:layout_weight="0.7"
android:layout_width="0dp"
android:layout_marginLeft="-13dp" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.25">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="HIGH SCORE 3456"
android:textColor="@android:color/background_light"
android:textSize="1sp"
android:id="@+id/highScoreLbl" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" >
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/play"
android:id="@+id/imageButton9"
android:layout_weight="1"
android:scaleType="fitCenter"
android:background="@android:color/transparent" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/stats"
android:id="@+id/imageButton10"
android:layout_weight="1"
android:scaleType="fitCenter"
android:background="@android:color/transparent"
android:onClick="openStats" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.1"></LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.4">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/audioon"
android:id="@+id/imageButton12"
android:layout_weight="1"
android:background="@android:color/transparent"
android:scaleType="fitCenter" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/adson"
android:id="@+id/imageButton13"
android:layout_weight="1"
android:background="@android:color/transparent"
android:scaleType="fitCenter" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.1"></LinearLayout>
</LinearLayout>
Using big images and allowing the system to scale them will be memory intensive and therefore slow on some/most devices.
You should provide the correct size images for the screen size available, this way the least scaling is needed.
Read more here: https://developer.android.com/guide/practices/screens_support.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With