当前位置: 首页 > 知识库问答 >
问题:

第一张照片出来了。当我滑动屏幕时,第二张图片出现,然后崩溃

唐焕
2023-03-14

下面的错误

package com.mobilprogramlar.viewpager_1;

import android.content.Context;
//import android.support.v4.view.PagerAdapter;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
import androidx.viewpager.widget.PagerAdapter;


public class SliderAdapter extends PagerAdapter {

    Context context;


    int[] img = {R.drawable.foraritdizi1,R.drawable.forbaginti,R.drawable.forbasit1,
            R.drawable.forbinom1,R.drawable.forbolme1,R.drawable.ic_launcher_foreground};

    public SliderAdapter(Context context) {
        this.context = context;
    }

    @Override
    public int getCount() {
        return img.length;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {

        return view == object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {

        ImageView imageView;

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View itemView = inflater.inflate(R.layout.slider_item,container,false);

        imageView = itemView.findViewById(R.id.slider_image_view);

        Toast.makeText(context,"position:"+position,Toast.LENGTH_LONG).show();
        **imageView.setImageResource(img[position]);**
        //imageView.setImageResource(img.get(position).getImage_drawable());

        //imageView.setImageResource(img[position]);

        Log.d("tag","Image Position -> " + img[position]);
        container.addView(itemView);
        return itemView;

    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((LinearLayout) object);
    }
}
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager_slider);

        viewPager.setAdapter(new SliderAdapter(MainActivity.this));
    }
}
html lang-html prettyprint-override"><?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".MainActivity">

    <!--android.support.v4.view.ViewPager-->
    <androidx.viewpager.widget.ViewPager
        android:id="@+id/view_pager_slider"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

第一张照片出来了。当我滑动屏幕,第二张图片出来,然后崩溃。

ImageView.SetImageResource(img[position]);行显示错误。

共有1个答案

罗华翰
2023-03-14

您正在使用大图像大小

int[] img = {R.drawable.foraritdizi1,R.drawable.forbaginti,R.drawable.forbasit1,
            R.drawable.forbinom1,R.drawable.forbolme1,R.drawable.ic_launcher_foreground};

这会导致java.lang.OutOfMemoryError。尝试减少这些图像的大小,并在清单中添加

<application
        android:hardwareAccelerated="true"
        android:largeHeap="true"
        >
 类似资料:
  • 在显示添加到css类主题之前,我将如何过滤WordPress中的帖子或第一张图片。我看到我可以在我的functions.php中使用API中的add_filter()函数,但是我在获取每个帖子的第一个图像时遇到了问题。

  • 我试图在没有预览的情况下配置相机兼容性,但在拍摄第二张照片后,应用程序异常崩溃: 2018-12-27 14:36:20.392 123 89-12977/com.example.android.braillefeedere/requestThread-0:捕获调用期间收到设备异常:java.io.ioException:setPreviewTexture在Android.hardware.cam

  • 在我从相机中拍摄了照片之后,在onActivityResult(int requestCode,int resultCode,Intent data)方法中调用。在本例中,我得到了一个NPE,因为数据是空的。 编辑

  • **这是突出显示的代码** 位图和Uri 图像选择器 OnActivityResult 正在上载到firebase 1 上传到2号火力基地

  • 本节将帮助您一步一步创建一张地图。该地图的最终效果如下。 分享链接:http://d.dituzhe.com/ShareMap/0EB1C2 1 地图分析 该地图包含两个图层,一个是点图层,指我们的店铺信息。一个是面图层,指我们的销售区域。下面将介绍如何创建这些数据,以及如何将这些数据添加到地图中,并设置数据的显示样式。 2 创建店铺数据 点击首页的“数据管理”页面,进入后点击“新增数据”按钮 在

  • 实现效果 页面中的文章有几张配图,随着页面上下滚动,图片位置划过图片一半时,图片从两侧滑入;图片位置离开可见区域时,图片向两侧滑出。 (图片太大,可点击外链查看,或查看在线效果。) 下图中蓝色方框位置即是图片所占位置,初始文档中已经写好了内容及样式,需要完成控制图片显示部分的代码来实现图片滑动的效果。 知识点 涉及控制图片的 CSS 属性: translateX 来控制左右移动 scale 来控制