Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将图像视图位图设置为返回的位图_Java_Android_Bitmap_Imageview_Android Imageview - Fatal编程技术网

Java 将图像视图位图设置为返回的位图

Java 将图像视图位图设置为返回的位图,java,android,bitmap,imageview,android-imageview,Java,Android,Bitmap,Imageview,Android Imageview,我正在尝试将图像视图的位图图像设置为另一个类返回的位图,下面是代码段:- imageView = (ImageView) findViewById(R.id.imageView); Bitmap myBitmap = myModel.loadBitmap(getResources(), R.drawable.nether); imageView.setImageBitmap(myBitmap); 下面是模型类:- public class Model { Bitmap cache; pub

我正在尝试将图像视图的位图图像设置为另一个类返回的位图,下面是代码段:-

imageView = (ImageView) findViewById(R.id.imageView);
Bitmap myBitmap = myModel.loadBitmap(getResources(), R.drawable.nether);
imageView.setImageBitmap(myBitmap);
下面是模型类:-

public class Model {

Bitmap cache;

public Bitmap loadBitmap(final Resources resource, final int i){

    new Thread(new Runnable(){
        public void run(){

            cache = BitmapFactory.decodeResource(resource, i);

        }
    }).start();

    return cache;
}
}
问题是图像无法显示。它显示在同一类中设置图像视图位图之前是否使用了用于加载位图的代码,但返回的位图不起作用


任何帮助都会很好,谢谢

-您使用了在后台运行的线程,因此它不会按顺序运行,并且您的缓存可能返回null,这就是您无法设置位图的原因

使用此简单行解决您的问题:-

Bitmap bitmap= BitmapFactory.decodeResource(getResources(), R.drawable.icon);

-您使用了在后台运行的线程,所以它不会按顺序运行,并且您的缓存可能返回null,这就是您无法设置位图的原因

使用此简单行解决您的问题:-

Bitmap bitmap= BitmapFactory.decodeResource(getResources(), R.drawable.icon);

我通过传递imageView成功地解决了问题,并且仍然将图像加载保持在线程内:

  new Thread(new Runnable(){
        public void run(){

            cache = BitmapFactory.decodeResource(resource, i);

            imageView.post(new Runnable(){
                public void run(){
                    imageView.setImageBitmap(cache);
                }
            });

        }
    }).start();

谢谢你的帮助

我通过传递imageView成功地解决了这个问题,并且仍然将图像加载保持在线程内:

  new Thread(new Runnable(){
        public void run(){

            cache = BitmapFactory.decodeResource(resource, i);

            imageView.post(new Runnable(){
                public void run(){
                    imageView.setImageBitmap(cache);
                }
            });

        }
    }).start();

谢谢你的帮助

我建议使用picassio或Universal Image Loader之类的图像加载库问题是什么?哇,凌晨4点的问题。。图像未显示,但如果在设置图像视图位图的同一类中使用相同的代码,则图像会正常工作,只是返回的位图不起作用。不要创建线程,只需简单地使用它,因为线程可能在后台运行,并且当调用方法缓存值时可能为空。虽然设置了图像视图位图,但相同的代码在同一类中可以正常工作,UI线程不应真正用于解码位图建议使用picassio或Universal Image Loader之类的图像加载库问题是什么?woops,4am问题。。图像未显示,但如果在设置图像视图位图的同一类中使用相同的代码,则图像会正常工作,只是返回的位图不起作用。不要创建线程,只需简单地使用它,因为线程可能在后台运行,并且当调用方法缓存值时可能为空。虽然设置了图像视图位图,但相同的代码在同一类中可以正常工作,UI线程不应真正用于解码bitmapsyeah这是可行的,但使用同一线程的同一代码在设置位图图像时也在同一类中起作用,有没有办法通过仍然使用线程使其工作?是的,这是可行的,但使用同一线程的同一代码在设置位图图像时也在同一类中起作用,有没有办法通过仍然使用线程使其工作?