Imageview可根据Int显示不同的图像



我有一个随机数生成器,我需要显示不同的图像,取决于不同的Int值。

例如,当randomNumber为1时,我需要显示特定的文本和图像当数字是10时,另一个特定的文本和图像等。

我甚至可以用ImageView做到这一点吗?我不知道从哪里开始?

package com.example.drinktivity;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Main2Activity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);

Button back = (Button) findViewById(R.id.buttonback); // Here the R.id.button1 is the button from you design
back.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent i = new Intent(Main2Activity.this, MainActivity.class);
startActivity(i);
}
});
ImageView image = (ImageView) findViewById(R.id.imageView1);
Bundle bundle = getIntent().getExtras();
int random = bundle.getInt("Value");
TextView text = (TextView) findViewById(R.id.textView1);
if (random==1) {
text.setText("");
}
if (random==2) {
text.setText("");
}
if (random==3) {
text.setText("");
}
if (random==4) {
text.setText("");
}
if (random==5) {
text.setText("");
}
if (random==6) {
text.setText("");
}
if (random==7) {
text.setText("");
}
if (random==8) {
text.setText("");
}
if (random==9) {
text.setText("");
}
if (random==10) {
text.setText("");
}

}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

创建一个可绘制的数组

public static final int[] im_smiley_drawable_smile_old = {
R.drawable.im_smiley_happy, R.drawable.im_smiley_sad,
R.drawable.im_smiley_winking,
R.drawable.im_smiley_tongue_sticking_out,
R.drawable.im_smiley_surprised, R.drawable.im_smiley_kissing,
R.drawable.im_smiley_yelling, R.drawable.im_smiley_cool}

发送随机数字到这个阵列你会得到随机图像

int[] i = {R.drawable.drawable1, R.drawable.drawable2, R.drawable.drawable2,      R.drawable.drawable4, R.drawable.drawable5,};
Random rand = new Random();
int  n = rand.nextInt(5);
imageView.setBackground(getResources().getDrawable(i[n]));

将您的int值视为int random你的随机no由数字1到5组成。那么你就可以这么做了。

if(random==1){
imageview.setImageBitmap(yourbitmap);
//here imageview is your imageview. and then bitmap you want when the number generated is 1.
}

这肯定是可能的,但有很多方法可以做到这一点。我认为你想要的主要方法是生成一个随机数,并根据这个数字从你的资源中选择一个图像。你可以这样检索资源:

context.getResources().getIdentifier(i.getIcon(), "drawable", context.getPackageName())

最新更新