首页 > 解决方案 > 为什么 setImageResource 需要不同的数组来打印图像以及图像中的剩余部分如何工作?

问题描述

package com.example.imageview;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

    public class MainActivity extends AppCompatActivity {
        private static ImageView saadaimageview;
        private static Button saadabutton;
        private static int currentimageindex;
        int[] naviimages = {
            R.drawable.hhsd,
            R.drawable.second,
            R.drawable.third
        };


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            saadaimagelistener();
        }
        public void saadaimagelistener() {
            saadaimageview = (ImageView) findViewById(R.id.ourfirstimage);
            saadabutton = (Button) findViewById(R.id.button);
            saadabutton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    currentimageindex++;
                    currentimageindex = currentimageindex % naviimages.length;
                    saadaimageview.setImageResource(naviimages[currentimageindex]);
                }
            });
        }
    }

请解释上面的代码当前图像索引,它是如何工作的?

标签: androidarrays

解决方案


你有一个可绘制数组:

int[] naviimages = {
    R.drawable.hhsd,
    R.drawable.second,
    R.drawable.third
};

每点击一次saadButtoncurrentimageindex增加1

currentimageindex++;

currentImageIndex取其余部分的值currentimageindex除以可绘制对象的长度array

currentimageindex = currentimageindex % naviimages.length;

例子 :

currentimageindex = 1;naviimages.length = 3

然后 :

currentimageindex将需要 1(剩下的 1 / 3)

所以saadaimageviewR.drawable.hhsd作为图像资源


推荐阅读