吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 759|回复: 5
收起左侧

[求助] 帮忙看看JAVA数组怎么改?

[复制链接]
oktongguo 发表于 2022-5-17 13:59
本帖最后由 oktongguo 于 2022-5-17 14:01 编辑

自动播放图片的代码,这里int[] imageIds 数组是固定的,我要让用户输入框输入一个数字,然后获取这个数字,这个数字是这个数组的长度。也就是说,播放几张图片,由用户说了算。怎么才能修改这个数组?
[Java] 纯文本查看 复制代码
public class MainActivity extends Activity { 
    private AdapterViewFlipper flipper;

    private TextView txt;
    private int imgleng=0;
    private int [] imageIds = new int[]{
        R.drawable.banana,
        R.drawable.banana_p1,
        R.drawable.banana_p2,
        R.drawable.banana_p3,
        R.drawable.banana_p4,
    };
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        txt = findViewById(R.id.activitymainTextView1);
        //创建一个BaseAdapter对象,该对象负责提供Gallery所显示的列表项
        flipper = (AdapterViewFlipper)findViewById(R.id.flipper);//得到AdapterViewFlipper
        BaseAdapter adapter = new BaseAdapter() {

            
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                //创建一个ImageView
                ImageView imageView =new ImageView(MainActivity.this);
                //设置要显示的图片
                imageView.setBackgroundResource(imageIds[position]);
                //为imageView设置缩放类型
                imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                //为imageview设置布局
                imageView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

                return imageView;
            }

            @Override
            public long getItemId(int position) {
                // TODO自动生成的方法存根
                //显示当前图片序号
                txt.setText(position + "");

                return position;
            }

            @Override
            public Object getItem(int position) {
                // TODO Auto-generated method stub
                return position;
            }

            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                imgleng =  imageIds.length - 2;
                return imgleng;
            }
        };
        //设置数据适配器
        flipper.setAdapter(adapter);        
    }
    //开始自动播放
    public void auto(View source) {
      
        

        //设置自动播放间隔时间1000是一秒
        flipper.setFlipInterval(1000);

        flipper.startFlipping();



    }

}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

幼稚范er 发表于 2022-5-17 14:15
先根据用户输入的数字去取原数组的图片个数,再把取出的图片存入一个新的数组作为展示输出就行了吧。
fht000 发表于 2022-5-17 14:25
数组先转集合,然后调用subList方法,从0到选择的下标,再转回数组。或者直接用集合都不用转来转去了。
oudaidai 发表于 2022-5-17 15:17
怜渠客 发表于 2022-5-17 17:32
用户输入之后定义一个新数组,数组内容取自原数组
henxiaxin 发表于 2022-5-17 18:08
是这个意思吗
[Java] 纯文本查看 复制代码
    public static void main(String[] args) {
        picAutoFlipInterval(2);
    }

    //1. 定义固定图片轮播数组
    private static final String[] imgs = new String[]{"第1张图", "第2张图", "第3张图", "第4张图", "第5张图", "第6张图", "第7张图"};

    /**
     * 自动轮播
     * [url=home.php?mod=space&uid=952169]@Param[/url] len 用户指定长度
     */
    private static void picAutoFlipInterval(int len) {
        if (len > imgs.length) {
            len = imgs.length;
        }
        final int modnum = len;
        new Thread(() -> {
            int index = 0;
            while (true) {
                System.out.println(imgs[index % modnum]);
                index++;
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();

    }
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表