상세 컨텐츠

본문 제목

배경화면설정과 이미지 필터 적용

프로그램개발/안드로이드

by fsteam 2012. 10. 24. 13:07

본문

WallpaperManager

Wallpaper 이미지 가져오기 및 이미지 필터 적용하기.


        final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
        final Drawable wallpaperDrawable = wallpaperManager.getDrawable();
        final ImageView imageView = (ImageView) findViewById(R.id.imageview);
        imageView.setDrawingCacheEnabled(true);        imageView.setImageDrawable(wallpaperDrawable);

=> WallpaperManager 인스턴스를 가져와서 ImageView에 그려준다.

        Button randomize = (Button) findViewById(R.id.randomize);
        randomize.setOnClickListener(new OnClickListener() {
            public void onClick(View view) {
                int mColor = (int) Math.floor(Math.random() * mColors.length);
                wallpaperDrawable.setColorFilter(mColors[mColor], PorterDuff.Mode.MULTIPLY);
                imageView.setImageDrawable(wallpaperDrawable);
                imageView.invalidate();
            }
        });

=> 랜덤으로 적용된 이미지 필터를 ImageView에 적용한다.

        wallpaperManager.setBitmap(imageView.getDrawingCache());

=> 변경한 이미지를 Wallpaper 에 적용한다.

void setDrawingCacheEnabled(boolean enabled)
: 그림 캐쉬 설정/미설정. 그림 캐쉬가 설정되면, 다음에 getDrawingCache() 또는 buildDrawingCache()에 대해 호출되어 View에서 비트맵을 그릴것이다.캐쉬가 설정되었을때 draw(android.graphics.Canvas) 호출은 캐쉬로부터 그리지 않을 것이다. 캐쉬로 부터 이득을 얻으려면, 반드시 비트맵이 Null이 아닌 경우 화면에 그리는 getDrawingCache() 를 호출하여 그리는 캐쉬 요청해야한다.

관련글 더보기