如何将String []转换为Bitmap []?

时间:2014-05-06 06:47:16

标签: android bitmap

我正在制作一个每隔10秒就会更换壁纸的项目 我可以使用此代码

将Bitmap数组设置为Service类
resized[i]=    Bitmap.createScaledBitmap(yourbitmap, 480,800, true);
Intent i = new Intent(MainActivity.this,WallService.class);
                    i.putExtra("Imagess", resized);
                    startService(i);

在服务类中,我正在使用此代码:

 String[] Bits = intent.getStringArrayExtra("Imagess");
        for(int i =0; i<Bits.length;i++){

        getApplicationContext().setWallpaper(Bits[i]);
        Thread.sleep(10000);
        }

此行中出错。上下文类型中的方法setWallpaper(Bitmap)不适用于参数(String)。所以我必须这样做,以便我可以通过将String []连接到Bitmap []

来设置壁纸

更新1:

Bitmap[] Bits = (Bitmap[]) intent.getExtras().getParcelableArray("Imagess");
        for(int i =0; i<Bits.length;i++){


        try {
            getApplicationContext().setWallpaper(Bits[i]);
            Thread.sleep(10000);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        }

1 个答案:

答案 0 :(得分:0)

使用此代码行是错误的:

 String[] Bits = intent.getStringArrayExtra("Imagess");

您将Parcelable[]置于意图附加内容中,但尝试获取String []。 使用:

Bitmap[] Bits = (Bitmap[]) getIntent().getExtras().getParcelableArray("Imagess");

<强>更新 如果您在Bits方法中初始化Service onStart(Intent intent, int startId)数组,请更新以下行:

Bitmap[] Bits = (Bitmap[]) getIntent().getExtras().getParcelableArray("Imagess");

为:

Bitmap[] Bits = (Bitmap[]) intent.getExtras().getParcelableArray("Imagess");

如您所见,我使用getIntent()方法中的intent参数替换了onStart(Intent intent, int startId)方法