cari

Rumah  >  Soal Jawab  >  teks badan

android - 安卓的背景图选用的图片像素应该用多少?

就是一个APP,引导页写了三个layout,分别放了三张图片

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        android:src="@drawable/guideimg1"
        />



</RelativeLayout>

第一次启动的时候显示引导页,然后在进入登录的页面,登录的界面也设置了一张背景图

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:weightSum="1"
    android:background="@drawable/login_background">

    <Button
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="微信登录"
        android:textColor="#fff"
        android:textSize="23dp"
        android:id="@+id/login_btn"
        android:drawableLeft="@mipmap/ic_wechat"
        android:drawablePadding="-95dp"
        android:paddingLeft="95dp"
        android:background="@drawable/button_style_login"
        android:layout_gravity="center_horizontal"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="15dp"
        android:elevation="21dp" />
</RelativeLayout>

但如果背景图的像素设成750*1344,然后到登录界面程序就崩了,内存溢出的错

java.lang.OutOfMemoryError
    android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
    android.graphics.BitmapFactory.decodeStream(BitmapFactory.java)
    android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java)
    android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java)
    android.content.res.Resources.loadDrawable(Resources.java)
    android.content.res.Resources.getDrawable(Resources.java)
    android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:346)
    android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197)
    android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:185)
    android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100)
    android.support.v7.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:421)
    android.support.design.internal.NavigationMenuItemView.initialize(NavigationMenuItemView.java:113)
    android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.onBindViewHolder(NavigationMenuPresenter.java:415)
    android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.onBindViewHolder(NavigationMenuPresenter.java:338)
    android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5825)
    android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5858)
    android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5094)
    android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4970)
    android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2029)
    android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1414)
    android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1377)
    android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:578)
    android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3315)
    android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3124)
    android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3568)
    android.view.View.layout(View.java)
    android.view.ViewGroup.layout(ViewGroup.java)
    android.widget.FrameLayout.layoutChildren(FrameLayout.java)
    android.widget.FrameLayout.onLayout(FrameLayout.java)
    android.view.View.layout(View.java)
    android.view.ViewGroup.layout(ViewGroup.java)
    android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1221)
    android.view.View.layout(View.java)
    android.view.ViewGroup.layout(ViewGroup.java)
    android.widget.FrameLayout.layoutChildren(FrameLayout.java)
    android.widget.FrameLayout.onLayout(FrameLayout.java)
    android.view.View.layout(View.java)
    android.view.ViewGroup.layout(ViewGroup.java)
    android.widget.LinearLayout.setChildFrame(LinearLayout.java)
    android.widget.LinearLayout.layoutVertical(LinearLayout.java)
    android.widget.LinearLayout.onLayout(LinearLayout.java)
    android.view.View.layout(View.java)
    android.view.ViewGroup.layout(ViewGroup.java)
    android.widget.FrameLayout.layoutChildren(FrameLayout.java)
    android.widget.FrameLayout.onLayout(FrameLayout.java)
    android.view.View.layout(View.java)
    android.view.ViewGroup.layout(ViewGroup.java)
    android.widget.LinearLayout.setChildFrame(LinearLayout.java)
    android.widget.LinearLayout.layoutVertical(LinearLayout.java)
    android.widget.LinearLayout.onLayout(LinearLayout.java)

将登录界面的像素调小写就不报错了

我想问一下这种问题应该怎么处理,图片的像素设成多少比较合适?

PHP中文网PHP中文网2772 hari yang lalu538

membalas semua(4)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 09:08:33

    Masalah biasa yang disebabkan oleh folder boleh lukis Adalah disyorkan bahawa UI hanya menghasilkan satu set gambar besar tanpa penapisan definisi tinggi dan meletakkannya dalam folder xxh-dpi Apabila dijalankan pada telefon mudah alih dengan resolusi rendah, gambar tersebut akan dimuatkan secara automatik mengikut perkadaran Tidak akan ada masalah OOM. Letakkannya terus di bawah boleh lukis, dan lalainya adalah untuk menyesuaikan diri dengan peleraian rendah Apabila telefon mudah alih adalah resolusi tinggi, ia akan dibesarkan secara berkadar dan OOM tidak boleh dirunding.

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 09:08:33

    Folder boleh lukis yang mana satu yang anda letakkan?
    Adalah disyorkan untuk meletakkannya dalam folder deawable-xxhdpi

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:08:33

    Ini adalah masalah dengan folder boleh lukis. Gambar dalam direktori boleh lukis akan dilaraskan mengikut tahap seperti xdpi dan xxdpi.
    Dalam erti kata lain, jika telefon anda adalah 1920x1080, saiz imej sebenar akan menjadi sekurang-kurangnya tiga kali ganda saiz imej anda.

    balas
    0
  • 阿神

    阿神2017-04-18 09:08:33

    http://blog.csdn.net/guolin_b...Cikgu Guo Lin menerangkan secara terperinci

    balas
    0
  • Batalbalas