【问题标题】:random image in Android?Android中的随机图像?
【发布时间】:2011-08-17 05:04:42
【问题描述】:

我正在尝试使用随机图像制作视图。我有代码并且没有错误,但是当我单击按钮转到随机图像时,它保持不变。

我的来源是:

private static final Random rgenerator = new Random();

private static final Integer[] mImageIds = 
    { R.drawable.img2, R.drawable.img1, R.drawable.img3, };

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Integer q = mImageIds[rgenerator.nextInt(mImageIds.length)];
    ImageView iv = (ImageView) findViewById(R.id.imageviewyeah);
    iv.setTag(q);

    View nextButton = findViewById(R.id.next_image_button);
    nextButton.setOnClickListener(this);
}

public void onClick(View v)
{
    switch (v.getId())
    {
        case R.id.next_image_button:
            Intent i = new Intent(this, RandomImage.class);
            startActivity(i);
            break;
    }
}

【问题讨论】:

    标签: android eclipse image random


    【解决方案1】:

    只需保留对您的 ImageView 的引用并使用其中一个随机资源调用 setImageResource(int id)。您无需启动新的Activity 即可检索随机资源 ID...

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        Integer q = mImageIds[rgenerator.nextInt(mImageIds.length)];
        final ImageView iv = (ImageView) findViewById(R.id.imageviewyeah);
    
        View nextButton = findViewById(R.id.next_image_button);
        nextButton.setOnClickListener(new OnClickListener() {
             public void onClick(View V) {
                  int resource = mImageIds[rgenerator.nextInt(mImageIds.length)];
                  iv.setImageResource(resource);
             }
        });
    }
    

    【讨论】:

    • 已编辑。这就是你所需要的。更正:您需要阅读更多有关您尝试为其编程的平台的信息。
    • 我正在努力学习有关该平台的所有信息,谢谢您的帮助。
    【解决方案2】:

    我会改变一些事情。

    private static final Random rgenerator = new Random();
    private ImageView iv;
    
    private static final Integer[] mImageIds = 
        { R.drawable.img2, R.drawable.img1, R.drawable.img3, };
    
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        Integer q = mImageIds[rgenerator.nextInt(mImageIds.length)];
        iv = (ImageView) findViewById(R.id.imageviewyeah);
        changeImageResource();
    
        View nextButton = findViewById(R.id.next_image_button);
        nextButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                changeImageResource();
            }
        });
    }
    
    public void changeImageResource()
    {
        int i = regeneratos.nextInt(3);
        iv.setImageResource(mImageIds[i]);
    }
    

    希望这会有所帮助。

    【讨论】:

    • 你真的希望这能帮助那些不只是复制粘贴和运行代码的人吗?简短的描述或一些 cmets 确实有帮助,代码部分应该是解释性的/概念证明。
    • 你说得对,我很抱歉,我写的时候是凌晨 3 点。我正在做的是通过运行将图像更改为随机图像的新方法来更改按钮的onClick 方法中的图像。无需为此使用意图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 2022-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多