我正在使用以下代码来显示带有下一个和上一个按钮的远程图像。
单击下一个和上一个按钮两到三次,不会显示下一个图像。
并且 DisplayLiveImage 的位图为空。
任何人都可以检查这是缓冲区问题吗?或连接?
ImageView img;
int CurrentImageIndex;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.imageviwer);
setTitle("some text");
myRemoteImages = new String[6];
myRemoteImages[0]="http://www.comparecheapinsurance.com/car-insurance/images/car-insurance-policy.jpg";
myRemoteImages[1]="http://www.speedace.info/solar_cars/solar_car_images/auburn_university_solar_car_banked_road_test.jpg";
myRemoteImages[2]="http://zedomax.com/blog/wp-content/uploads/2009/07/car.jpg";
myRemoteImages[3]="http://www.wallpaperez.net/wallpaper/car/Lamborghini-prototype-car-926.jpg";
myRemoteImages[4]="http://www.evbeat.com/blog/wp-content/uploads/2009/03/aptera-electric-car.jpg";
myRemoteImages[5]="http://www.cartuningcentral.com/wp-content/uploads/2008/01/exotic-car-pagani-zonda.jpg";
CurrentImageIndex= 0;
img= (ImageView)findViewById(R.id.myImageView);
DisplayLiveImage(CurrentImageIndex);
Button previous = (Button)findViewById(R.id.btnPrevious);
Button next = (Button)findViewById(R.id.btnNext);
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
ShowNext();
}
});
previous.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
ShowPrevious();
}
});
}
public void DisplayLiveImage(int val)
{
try {
URL aURL = new URL(myRemoteImages[val]);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
Bitmap bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
// i.setImageBitmap(bm);
img.setImageBitmap(bm);
} catch (IOException e) {
}
// i.setScaleType(ImageView.ScaleType.FIT_CENTER);
// i.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
// return i;
}
public void ShowNext()
{
if(CurrentImageIndex < myRemoteImages.length )
{
CurrentImageIndex = CurrentImageIndex +1 ;
DisplayLiveImage(CurrentImageIndex);
}
}
public void ShowPrevious()
{
if(CurrentImageIndex > 0 )
{
CurrentImageIndex = CurrentImageIndex -1 ;
DisplayLiveImage(CurrentImageIndex);
}
}
任何帮助,将不胜感激。
问题可能与您尝试下载并在图像视图中设置的图像的分辨率/大小有关。
此网址中的图像
http://www.wallpaperez.net/wallpaper/car/Lamborghini-prototype-car-926.jpg http://www.wallpaperez.net/wallpaper/car/Lamborghini-prototype-car-926.jpg
是 1920*1200 像素,对于模拟器来说可能太大了。该代码对于其他较小的图片运行良好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)