我正在尝试为我的活动设置随机bg,但是当我进入我的活动时,我的应用程序会强制关闭。这段代码有什么问题?
在我的第一个活动中,您在点击“开始”按钮后获得相机意图,当您拍摄自己的照片时,您将进行另一项活动,结果您可以在bg中获得随机图像答案。这就像一个应用程序,你可以拍摄一张关于你自己的照片,程序会为你回答你看起来不错,或者不是这样的。答案在imageView中作为图像提供,这就是我需要随机更改bg的原因。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int[] images = {R.drawable.image01, R.drawable.image02, R.drawable.image03};
setContentView(R.layout.activity_main_activity2);
ImageView mImageView = (ImageView)findViewById(R.id.imageView);
// Get a random between 0 and images.length-1
int imageId = (int)(Math.random() * images.length);
// Set the image
mImageView.setBackgroundResource(images[imageId]);
// Create the interstitial.
interstitial = new InterstitialAd(this);
interstitial.setAdUnitId("ca-app-pub-012012013013/01201201201");
// Create ad request.
AdRequest adRequest = new AdRequest.Builder().build();
// Begin loading your interstitial.
interstitial.loadAd(adRequest);
}
那么问题是什么?我没有得到代码的错误,只是强行关闭,当我拍照,然后进入另一个活动。
答案 0 :(得分:0)
问题可能是您在声明图像阵列后设置内容视图,尝试将数组放在' setContentView'之后。或者使数组成为可变类并在OnCreate中初始化它。
如果通过调用' runOnUIThread'来帮助尝试在主UI线程上运行背景图像设置代码行,则无法帮助您并且传递了一个新的Runnable'作为参数。
请改为尝试:
public static Random randomGenerator = new Random();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity2);
int[] images = {R.drawable.image01, R.drawable.image02, R.drawable.image03};
ImageView mImageView = (ImageView)findViewById(R.id.imageView);
// Get a random between 0 and images.length-1
int randomNumber = randomGenerator.nextInt(images.length);
final int imageId = images[randomNumber];
runOnUiThread(new Runnable() {
@Override
public void run() {
// Set the image
mImageView.setBackgroundResource(images[imageId]);
}
});
// Create the interstitial.
interstitial = new InterstitialAd(this);
interstitial.setAdUnitId("ca-app-pub-012012013013/01201201201");
// Create ad request.
AdRequest adRequest = new AdRequest.Builder().build();
// Begin loading your interstitial.
interstitial.loadAd(adRequest);
}