2016-03-21 131 views
1

这是活动即时尝试放置背景! 事情是当我删除Relativelayout并离开滚动视图和线性它工作正常!在滚动视图上应用背景

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/background"> 
<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 


    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="56dp" 
     android:paddingLeft="24dp" 
     android:paddingRight="24dp" 
     android:weightSum="1"> 

     <ImageView android:src="@drawable/logo" 
      android:layout_width="3023dp" 
      android:layout_height="129dp" 
      android:layout_marginBottom="24dp" 
      android:layout_gravity="center_horizontal" 
      android:layout_weight="1.06" /> 

     <!-- Name Label --> 
     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dp" 
      android:layout_marginBottom="8dp"> 
      <EditText 
       android:id="@+id/editTextUserName" 
       android:hint="User Name" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="textCapWords" 
       android:textColor="@color/black" 
       /> 
     </android.support.design.widget.TextInputLayout> 

     <!-- Email Label --> 
     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dp" 
      android:layout_marginBottom="8dp"> 
      <EditText android:id="@+id/input_email" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="textEmailAddress" 
       android:hint="Email" 
       android:textColorHint="@color/black" 
       android:textColor="@color/black"/> 
     </android.support.design.widget.TextInputLayout> 

     <!-- Password Label --> 
     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dp" 
      android:layout_marginBottom="8dp"> 
      <EditText android:id="@+id/input_password" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="textPassword" 
       android:hint="Password" 
       android:textColor="@color/black"/> 
     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dp" 
      android:layout_marginBottom="8dp"> 
      <EditText 
       android:id="@+id/FirstName" 
       android:hint="FirstName" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="textPersonName" 
       /> 
     </android.support.design.widget.TextInputLayout> 
     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dp" 
      android:layout_marginBottom="8dp"> 
      <EditText 
       android:id="@+id/SecondName" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:hint="Middle Name" 
       android:inputType="textPersonName" 
       /> 
     </android.support.design.widget.TextInputLayout> 
     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dp" 
      android:layout_marginBottom="8dp"> 
      <EditText 
       android:id="@+id/LastName" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:hint="Family Name" 
       android:inputType="textPersonName" 
       /> 
     </android.support.design.widget.TextInputLayout> 
     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dp" 
      android:layout_marginBottom="8dp"> 
      <EditText 
       android:id="@+id/Birthday" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:hint="MM/YYYY" 
       android:inputType="date"/> 
     </android.support.design.widget.TextInputLayout> 
     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dp" 
      android:layout_marginBottom="8dp"> 
      <EditText 
       android:id="@+id/PhoneNumber" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:hint="Phone Number" 
       android:inputType="phone"/> 
     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dp" 
      android:layout_marginBottom="8dp"> 
      <EditText 
       android:id="@+id/Address" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:hint="Area" 
       android:inputType="text" 
       /> 
     </android.support.design.widget.TextInputLayout> 


     <!-- Signup Button --> 
     <android.support.v7.widget.AppCompatButton 
      android:id="@+id/btn_signup" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="24dp" 
      android:layout_marginBottom="24dp" 
      android:padding="12dp" 
      android:textColor="@color/black" 
      android:text="Create Account"/> 

     <TextView android:id="@+id/link_login" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="24dp" 
      android:text="Already a member? Login" 
      android:gravity="center" 
      android:textColor="@color/black" 
      android:textSize="16dip"/> 

    </LinearLayout> 
</ScrollView> 
</RelativeLayout> 

这些都显示了相应的错误,当我尝试登入活动

03-21 12:14:37.355 14501-14501/com.sourcey.materialloginexample E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: com.sourcey.materialloginexample, PID: 14501 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sourcey.materialloginexample/com.sourcey.materiallogindemo.SignupActivity}: android.view.InflateException: Binary XML file line #3: Error inflating class <unknown> 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
      at android.app.ActivityThread.access$800(ActivityThread.java:135) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:136) 
      at android.app.ActivityThread.main(ActivityThread.java:5001) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.view.InflateException: Binary XML file line #3: Error inflating class <unknown> 
      at android.view.LayoutInflater.createView(LayoutInflater.java:620) 
      at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
      at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
      at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) 
      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
      at com.sourcey.materiallogindemo.SignupActivity.onCreate(SignupActivity.java:28) 
      at android.app.Activity.performCreate(Activity.java:5231) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
            at android.app.ActivityThread.access$800(ActivityThread.java:135) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5001) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
            at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.reflect.InvocationTargetException 
      at java.lang.reflect.Constructor.constructNative(Native Method) 
      at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
      at android.view.LayoutInflater.createView(LayoutInflater.java:594) 
            at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
            at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
            at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) 
            at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
            at com.sourcey.materiallogindemo.SignupActivity.onCreate(SignupActivity.java:28) 
            at android.app.Activity.performCreate(Activity.java:5231) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
            at android.app.ActivityThread.access$800(ActivityThread.java:135) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5001) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
            at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.OutOfMemoryError 
      at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
      at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:594) 
      at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:429) 
      at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:840) 
      at android.content.res.Resources.loadDrawable(Resources.java:2110) 
      at android.content.res.TypedArray.getDrawable(TypedArray.java:602) 
      at android.view.View.<init>(View.java:3554) 
      at android.view.View.<init>(View.java:3484) 
      at android.view.ViewGroup.<init>(ViewGroup.java:464) 
      at android.widget.RelativeLayout.<init>(RelativeLayout.java:236) 
            at java.lang.reflect.Constructor.constructNative(Native Method) 
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
            at android.view.LayoutInflater.createView(LayoutInflater.java:594) 
            at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
            at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
            at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) 
            at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
            at com.sourcey.materiallogindemo.SignupActivity.onCreate(SignupActivity.java:28) 
            at android.app.Activity.performCreate(Activity.java:5231) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
            at android.app.ActivityThread.access$800(ActivityThread.java:135) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5001) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
            at dalvik.system.NativeStart.main(Native Method) 

回答

1

acsess它检查的背景图像的大小,你用完时,它的建设RelativeLayout的记忆:

Caused by: java.lang.OutOfMemoryError 
     at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:594) 
     at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:429) 
     at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:840) 
     at android.content.res.Resources.loadDrawable(Resources.java:2110) 
     at android.content.res.TypedArray.getDrawable(TypedArray.java:602) 
     at android.view.View.<init>(View.java:3554) 
     at android.view.View.<init>(View.java:3484) 
     at android.view.ViewGroup.<init>(ViewGroup.java:464) 
     at android.widget.RelativeLayout.<init>(RelativeLayout.java:236) 

您应该使用mipmap文件夹并调整每种设备分辨率的背景,以免在创建视图时消耗大量内存。