【问题标题】:How to make random images load in ImageView? (Android)如何在 ImageView 中加载随机图像? (安卓)
【发布时间】:2013-11-15 19:16:13
【问题描述】:

我是一名初学者 Android 开发者 在我的应用程序中,我想制作一个随机图像 每次启动应用程序时从图像列表中加载。 Genneraly,我想使用 ImageView 因为它很简单, 但是您必须提及要在布局文件中加载的图像或 main.XML。

我不知道该怎么做,所以请帮忙。 :-)

【问题讨论】:

    标签: android xml image imageview


    【解决方案1】:

    .xml文件中不需要设置图片

    说,你的布局中有一个 ImageView(比如它的 main.xml)

    main.xml

    <ImageView>
        android:id="@id+/myImageView"
    </ImageView>
    

    在您的活动中

    int[] images = new int[] {R.drawable.image01, R.drawable.image02, R.drawable.image03};
    
    // Get the ImageView
    setContent(R.layout.main);
    ImageView mImageView = (ImageView)findViewById(R.id.myImageView);
    
    // Get a random between 0 and images.length-1
    int imageId = (int)(Math.random() * images.length);
    
    // Set the image
    mImageView.setBackgroundResource(images[imageId]);
    

    希望这会有所帮助(:

    编辑

    1. 图像数组的索引不应硬编码
    2. 更正了语法错误。谢谢汤姆指出:)

    【讨论】:

    • 我认为这是最好的方法... 3 应该是一个变量,由数组的大小设置,但没关系
    • 其他的,你应该四舍五入,因为这些转换可能会产生错误,使用Math.round((Math.random() * images.length))
    • 我是那种好奇的程序员,那么你所说的硬编码是什么意思?当您通过以下方式定义数组时会发生什么:int[] images?
    • 硬编码意味着使用确切的值。就像int month=11; 一样,这是一个不好的做法,因为您需要在 12 月到来时更改它。更好的做法是调用 int month=getMonth(); 之类的东西,getMonth() 从系统或其他地方获取确切的月份
    • 你不是说:int[] images = new int [] {R.drawable.image01, R.drawable.image02, R.drawable.image03}; ?
    猜你喜欢
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 2011-11-20
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多