如何修复无法从ContextWrapper错误中降低继承方法的可见性?

时间:2014-08-06 22:23:39

标签: java android eclipse

行" private void setWallpaper(Bitmap bitmap)"给我一个不能从ContextWrapper错误中降低继承方法的可见性,我不知道如何解决它。所以,请你帮帮我,谢谢。

这是我的代码:

Thread t = new Thread(new Runnable(){
           public void run(){
               final Bitmap  bmWallpaper = loadImage(toPhone2);
               runOnUiThread(new Runnable(){
               public void run() {
                  setWallpaper(bmWallpaper);    
               }
            });}}
        );
        t.start();
        break;
            }
        }

        private Bitmap loadImage(int id) {
            InputStream WP = getResources().openRawResource(id);
            Bitmap wallpaper = BitmapFactory.decodeStream(WP);
            DisplayMetrics metrics = new DisplayMetrics(); 
            getWindowManager().getDefaultDisplay().getMetrics(metrics);
            int height = metrics.heightPixels; 
            int width = metrics.widthPixels;
            Bitmap tempbitMap = BitmapFactory.decodeResource(getResources(), toPhone2);
            Bitmap bitmap = Bitmap.createScaledBitmap(tempbitMap,width,height, true);
            return bitmap;
        }

        private void setWallpaper(Bitmap bitmap) {
               try{
                    wallpaperManager.setBitmap(bitmap);
                    getApplicationContext().setWallpaper(wallpaper);
                }catch(IOException e){
                    e.printStackTrace();
                }
        }

2 个答案:

答案 0 :(得分:1)

您覆盖了某个功能,但更改了范围。如果你让它更明显,而不是更少,你就可以这样做。修复函数的范围,它将编译。

答案 1 :(得分:0)

可能你要覆盖方法setWallpaper(Bitmap bitmap),它必须声明为protected或public(我猜是公开的)。尝试更改

的行
public void setWallpaper(Bitmap bitmap)

protected void setWallpaper(Bitmap bitmap)

取决于如何定义继承方法。