изображения с одинаковым размером и разрешением в gridview не запускаются - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь работать над кодом, который отображает изображения Код правильный, и некоторые изображения были показаны, но когда я нажимаю изображение после комментария «я написал это для enplane» приложение хорошо будет остановлено все изображения имеют одинаковый размер и разрешение Я не знаю, где ошибка ...

Grid_activities1

package com.children_activities;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;

public class Grid_activities1 extends AppCompatActivity {
GridView gridView;
Integer[] image_grid={R.drawable.month1,R.drawable.month2,
        R.drawable.month3,R.drawable.month4,
        R.drawable.month5,R.drawable.month6,
        R.drawable.month7,
       // R.drawable.month8,
      //  R.drawable.month9,
   //     R.drawable.month10,
      //  R.drawable.month11,
     //   R.drawable.month12,
        R.drawable.month16

};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_grid_activities1);
    gridView=findViewById(R.id.gridview);

    GridAdapter gridAdapter=new GridAdapter(getApplication(),image_grid);
    gridView.setAdapter(gridAdapter);
    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int 
  position, long id) {
            Intent intent=new 
 Intent(Grid_activities1.this,Image_show.class);
            intent.putExtra("images",image_grid[position]);
            //intent.putExtra("text",info[position]);

            startActivity(intent);
        }
    });


}

}

logcat с ошибкой

2019-01-13 11:42:11.675 19394-19394/com.children_activities E/AndroidRuntime: 
    FATAL EXCEPTION: main
    Process: com.children_activities, PID: 19394
    java.lang.RuntimeException: Unable to start activity 
    ComponentInfo{com.children_activities/com.children_activities.Image_show}: 
    android.view.InflateException: Binary XML file line #2: Binary XML file line 
    #2: Error inflating class <unknown>
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988)
        at android.app.ActivityThread.-wrap14(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6682)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
     Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown>
     Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
        at android.view.LayoutInflater.createView(LayoutInflater.java:652)
        at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:724)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:792)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:496)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:378)
        at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
        at com.children_activities.Image_show.onCreate(Image_show.java:15)
        at android.app.Activity.performCreate(Activity.java:6942)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2880)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988)
        at android.app.ActivityThread.-wrap14(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6682)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
     Caused by: java.lang.OutOfMemoryError: Failed to allocate a 24471564 byte allocation with 5218424 free bytes and 4MB until OOM
        at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
        at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
        at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:700)
        at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:535)
        at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1179)
        at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:770)
        at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:621)
        at android.content.res.Resources.loadDrawable(Resources.java:1727)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:945)
        at android.view.View.<init>(View.java:4516)
        at android.view.ViewGroup.<init>(ViewGroup.java:579)
        at android.widget.RelativeLayout.<init>(RelativeLayout.java:248)
        at android.widget.RelativeLayout.<init>(RelativeLayout.java:244)
2019-01-13 11:42:11.675 19394-19394/com.children_activities E/AndroidRuntime:     at android.widget.RelativeLayout.<init>(RelativeLayout.java:240)
            ... 25 more

image_show.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/backg"
    tools:context=".Image_show"
    tools:layout_editor_absoluteY="25dp">

    <ImageView
        android:id="@+id/selected_image"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_alignParentTop="true"
        android:layout_marginTop="63dp" />

    <TextView
        android:id="@+id/txt_show"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="142dp"
        android:gravity="center"
        android:text="hii"
        android:textColor="#782ad4"
        android:textSize="35dp"
        android:textStyle="bold" />


</RelativeLayout>

Ответы [ 2 ]

0 голосов
/ 13 января 2019

Проблема с вашим рисованием. Попробуйте переместить @dawable/backg в папку res/drawable-xhdpi/.

0 голосов
/ 13 января 2019

OutOfMemoryError является основной ошибкой, это происходит из-за больших размеров изображений, что в вашем случае приводит к утечке памяти. Вы можете добавить android:largeHeap="true" и android:hardwareAccelerated="false" в тег приложения в manifest.xml

 <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">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...