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() 를 호출하여 그리는 캐쉬 요청해야한다.
댓글 없음:
댓글 쓰기