将本地图片设置为桌面壁纸方法

来源:互联网 发布:销售提成软件 编辑:程序博客网 时间:2024/05/16 01:16

     将本地图片设置为桌面壁纸的方法如下:开启分线程去执行时因为在部分手机上测试发现这个过程非常耗时(可能10s钟),所以容易出现ANR,因此开启一个分线程:

static class PreviewHandler extends Handler {        private final WeakReference<PreviewActivity> mActivity;        PreviewHandler(PreviewActivity activity) {            mActivity = new WeakReference<PreviewActivity>(activity);        }        @Override        public void handleMessage(Message msg) {            PreviewActivity activity = mActivity.get();            if (null != activity) {                activity.handleMessage(msg);            }        }    }    private void handleMessage(Message msg) {        clearWaitProgressImmediately();        switch (msg.what) {            case SET_PIC_WALL_PAPER_ERROR:                Toast.makeText(PreviewActivity.this, getResources().getString(R.string.set_pic_wall_paper_fail), Toast.LENGTH_SHORT).show();                break;            case SET_PIC_WALL_PAPER_SUCESS:                Toast.makeText(PreviewActivity.this, getResources().getString(R.string.set_pic_wall_paper_sucess), Toast.LENGTH_SHORT).show();                break;        }    }    /**     * 设置壁纸     */    private void setPicWallPaper() {        mPreviewHandler = new PreviewHandler(this);        new Thread(new Runnable() {            @Override            public void run() {                try {                    WallpaperManager instance = WallpaperManager.getInstance(PreviewActivity.this);                    int desiredMinimumWidth = getWindowManager().getDefaultDisplay().getWidth();                    int desiredMinimumHeight = getWindowManager().getDefaultDisplay().getHeight();                    instance.suggestDesiredDimensions(desiredMinimumWidth, desiredMinimumHeight);                    Bitmap bitmap = BitmapFactory.decodeFile(photoPath);//图片的路径                    instance.setBitmap(bitmap);                    bitmap.recycle();                    bitmap = null;                    mPreviewHandler.sendEmptyMessage(SET_PIC_WALL_PAPER_SUCESS);                } catch (IOException e) {                    mPreviewHandler.sendEmptyMessage(SET_PIC_WALL_PAPER_ERROR);                }            }        }).start();        showWaitProgress();//一个设置的progressbar    }


0 0
原创粉丝点击