问题
你好呀,
我正在开发一个应用程序,用户在其中指定一些图片以及它们将在屏幕上显示多长时间。所以有时他想创建一个小动画之类的东西或在一小段时间内查看图像。问题是一段时间后,图像没有在应该预览的时候进行预览,并且我们有几毫秒的错误。在我正在开发的应用程序中,时间很重要,所以我想要一些关于问题可能是什么的帮助。
编码
所以让我解释一下它是如何工作的。我从我的网络应用程序中拍摄照片,然后将它们保存在 HashMap 中
Bitmap image = ImageOperations(url,String.valueOf(frameNum) + ".jpg");
ImageMap.put(String.valueOf(frameNum), image);
其中的方法 ImageOperations 是这样的:
private Bitmap ImageOperations(String url, String saveFilename) {
try {
Display display = getWindowManager().getDefaultDisplay();
InputStream is = (InputStream) this.fetch(url);
Bitmap theImage = BitmapFactory.decodeStream(is);
if (theImage.getHeight() >= 700 || theImage.getWidth() >= 700) {
theImage = Bitmap.createScaledBitmap(theImage,
display.getWidth(), display.getHeight() - 140, true);
}
return theImage;
} catch (MalformedURLException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
所以后来我运行了一个线程,当用户指定时更新 UI。更新它的方法就是这个。
public void setPictures(int NumOfFrame) {
if (frameArray.get(NumOfFrame - 1).frame_pic.contains("n/a") != true) {
ImagePlace.setImageBitmap(ImageMap.get(String.valueOf(NumOfFrame)));
} else {
ImagePlace.setImageDrawable(null);
}
}
更新图像后,我们将线程置于睡眠状态,当再次运行时,它会更新线程。是否有什么造成问题的原因?它与垃圾收集有关吗?
先感谢您