在app的活动的imageview中准确加载图像

【在app的活动的imageview中准确加载图像】于今腐草无萤火,终古垂杨有暮鸦。这篇文章主要讲述在app的活动的imageview中准确加载图像相关的知识,希望能为你提供帮助。
我正在尝试实现一个应用程序,其中在创建活动时在图像视图中加载大量图像 - 在滚动视图中正好有24个图像视图对齐。当我用24 imageview作为启动器活动本身启动该活动时 - 它工作正常..但是,当我在欢迎屏幕后使用该活动作为第二个活动时它崩溃并说 - >

12-29 11:54:04.624 31595-31595/com.example.myvidapp W/art: Throwing OutOfMemoryError "Failed to allocate a 6822556 byte allocation with 3024640 free bytes and 2MB until OOM" 12-29 11:54:04.633 31595-31595/com.example.myvidapp D/skia: --- allocation failed for scaled bitmap 12-29 11:54:04.634 31595-31595/com.example.myvidapp D/androidRuntime: Shutting down VM 12-29 11:54:04.635 31595-31595/com.example.myvidapp E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.myvidapp, PID: 31595 java.lang.OutOfMemoryError: Failed to allocate a 6822556 byte allocation with 3024640 free bytes and 2MB until OOM at dalvik.system.VMRuntime.newNonMovableArray(Native Method) at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:620) at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:455) at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1155) at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:720) at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571) at android.content.res.Resources.loadDrawable(Resources.java:858) at android.content.res.TypedArray.getDrawable(TypedArray.java:928) at android.view.View.< init> (View.java:4202) at android.widget.ImageView.< init> (ImageView.java:155) at android.widget.ImageView.< init> (ImageView.java:150) at android.support.v7.widget.AppCompatImageView.< init> (AppCompatImageView.java:72) at android.support.v7.widget.AppCompatImageView.< init> (AppCompatImageView.java:68) at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106) at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024) at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) at android.view.LayoutInflater.rInflate(LayoutInflater.java:858) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.rInflate(LayoutInflater.java:861) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.rInflate(LayoutInflater.java:861) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.rInflate(LayoutInflater.java:861) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.inflate(LayoutInflater.java:518) at android.view.LayoutInflater.inflate(LayoutInflater.java:426) at android.view.LayoutInflater.inflate(LayoutInflater.java:377) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) at com.example.myvidapp.MainActivity.onCreate(MainActivity.java:15) at android.app.Activity.performCreate(Activity.java:6723) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2626) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2734) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1485) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6195) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

我怎么能克服这个错误?
这是我的xml文件 - >
< ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android" > < LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"android:background="@drawable/bkg"> < LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="5dp"> < TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Video Chat MadeEasy" android:textColor="#191fcc" android:textStyle="bold" android:textSize="30sp" android:gravity="center" android:layout_marginBottom="10dp"/> < TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Most Popular collections!!" android:textSize="20sp" android:gravity="center" android:layout_marginBottom="10dp"/> < LinearLayout android:layout_width="wrap_content" android:layout_height="120dp" android:layout_marginBottom="20dp" > < ImageView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/skype" android:tooltipText="Skype" android:layout_margin="5dp" android:onClick="skype_clk" > < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/whapp" android:tooltipText="WhatsApp" android:layout_margin="5dp" android:onClick="whp_clk"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/msng" android:layout_margin="5dp" android:onClick="msg_clk" android:tooltipText="Messenger"> < /ImageView> < /LinearLayout> < LinearLayout android:layout_width="wrap_content" android:layout_height="120dp" android:layout_marginBottom="20dp"> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/imo" android:tooltipText="imo" android:layout_margin="5dp" android:onClick="imo_clk"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/line" android:tooltipText="Line" android:layout_margin="5dp" android:onClick="lin_clk"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/tango" android:layout_margin="5dp" android:onClick="tng_clk" android:tooltipText="Tango"> < /ImageView> < /LinearLayout> < LinearLayout android:layout_width="wrap_content" android:layout_height="120dp" android:layout_marginBottom="20dp" > < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/viber" android:layout_margin="5dp" android:onClick="vbr_clk" android:tooltipText="Viber"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/icq" android:layout_margin="5dp" android:onClick="icq_clk" android:tooltipText="icq"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/wechat" android:tooltipText="weChat" android:layout_margin="5dp" android:onClick="wct_clk"> < /ImageView> < /LinearLayout> < LinearLayout android:layout_width="wrap_content" android:layout_height="120dp" android:layout_marginBottom="20dp" > < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/ghangout" android:tooltipText="Hangout" android:layout_margin="5dp" android:onClick="ght_clk"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="5dp" android:layout_weight="1" android:background="@drawable/duo" android:onClick="duo_clk" android:tooltipText="Duo"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/bigo" android:tooltipText="Bigo Live" android:layout_margin="5dp" android:onClick="bgo_clk"> < /ImageView> < /LinearLayout> < /LinearLayout> < LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="5dp"> < TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="More from us!!" android:textColor="#191fcc" android:textStyle="bold" android:textSize="30sp" android:gravity="center" android:layout_marginBottom="10dp"/> < TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Untraditional collections!!" android:textSize="20sp" android:gravity="center" android:layout_marginBottom="10dp"/> < LinearLayout android:layout_width="wrap_content" android:layout_height="120dp" android:layout_marginBottom="20dp" > < ImageView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/snct" android:tooltipText="Snapchat" android:layout_margin="5dp" android:onClick="snct_clk" > < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/livu" android:tooltipText="LivU" android:layout_margin="5dp" android:onClick="livu_clk"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/kct" android:layout_margin="5dp" android:onClick="kct_clk" android:tooltipText="KingsChat"> < /ImageView> < /LinearLayout> < LinearLayout android:layout_width="wrap_content" android:layout_height="120dp" android:layout_marginBottom="20dp"> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/lly" android:tooltipText="live.ly" android:layout_margin="5dp" android:onClick="lly_clk"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/mpl" android:tooltipText="Marcopolo" android:layout_margin="5dp" android:onClick="mpl_clk"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/now" android:layout_margin="5dp" android:onClick="now_clk" android:tooltipText="YouNow"> < /ImageView> < /LinearLayout> < LinearLayout android:layout_width="wrap_content" android:layout_height="120dp" android:layout_marginBottom="20dp" > < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/lme" android:layout_margin="5dp" android:onClick="lme_clk" android:tooltipText="live.me"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/sgo" android:layout_margin="5dp" android:onClick="sgo_clk" android:tooltipText="Streamgo"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/hny" android:tooltipText="Honey" android:layout_margin="5dp" android:onClick="hny_clk"> < /ImageView> < /LinearLayout> < LinearLayout android:layout_width="wrap_content" android:layout_height="120dp" android:layout_marginBottom="20dp" > < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/mln" android:tooltipText="Melon" android:layout_margin="5dp" android:onClick="mln_clk"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="5dp" android:layout_weight="1" android:background="@drawable/imn" android:onClick="imn_clk" android:tooltipText="Indian Messsenger"> < /ImageView> < ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/hk" android:tooltipText="Hike" android:layout_margin="5dp" android:onClick="hk_clk"> < /ImageView> < /LinearLayout> < /LinearLayout> < Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Want to explore more ? Click here !!" android:onClick="btnpl" android:background="@drawable/buttonshape" android:textColor="#ffffff"/> < /LinearLayout> < /ScrollView>

这里是第15行,它在“onCreate” - > 上显示错误-i.e
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //line no 15 in my code(indicated in the logcat) }

答案在你的清单中使用它:
< application android:allowBackup="true" android:hardwareAccelerated="false" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:largeHeap="true" android:supportsRtl="true" android:theme="@style/AppTheme">

另一答案添加清单文件android:hardwareAccelerated =“false”,android:largeHeap =“true”它适用于某些环境。
< application android:allowBackup="true" android:hardwareAccelerated="false" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:largeHeap="true" android:supportsRtl="true" android:theme="@style/AppTheme">

另一答案使用像GlidePicasso这样的图像加载库。对于Glide
public static void loadToGlide(Context context, ImageView imageView, Object o) { Glide.with(context) .asBitmap() .apply(new RequestOptions() .centerCrop()) .transition(new BitmapTransitionOptions() .crossFade()) .load(o) .into(imageView); }

致电:
loadToGlide(context, yourImageView, R.drawable.yourImage);

他们将为您处理一切,尤其是OutOfMemoryError
另一答案您可以使用recylerview而不是多个imagviews,并且可以使用volley imageloader或glide来加载seamlessely。

    推荐阅读