• android 设置壁纸几种方法



    总结一下,android中设置壁纸几种方法


    方法一: 获取WallpaperManager实例

     private void set_mytheme(int resid){
         	 WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);  
           //   Resources res = getResources();           
              try {  
                  wallpaperManager.setResource(resid);  
              }  
              catch (IOException e) {  
                  Toast.makeText(getApplicationContext(), "更换壁纸失败,强稍后重试", 200);
              }  
         }

    方法二:

     private void set_mytheme(int resid){
         	getWindow().setBackgroundDrawableResource(int resid);
         }

    方法三:

     private synchronized void selectWallpaper(int position) {
           
            try {
                InputStream stream = getResources().openRawResource(IMAGE_IDS[position]);
                setWallpaper(stream);
                setResult(RESULT_OK);
                
            } catch (IOException e) {
                Log.e(LOG_TAG, "Failed to set wallpaper " + e);
            }
        }

    方法四:
     getWindow().setBackgroundDrawable(new ClippedDrawable(wallpaper));

    /**
         * When a drawable is attached to a View, the View gives the Drawable its dimensions
         * by calling Drawable.setBounds(). In this application, the View that draws the
         * wallpaper has the same size as the screen. However, the wallpaper might be larger
         * that the screen which means it will be automatically stretched. Because stretching
         * a bitmap while drawing it is very expensive, we use a ClippedDrawable instead.
         * This drawable simply draws another wallpaper but makes sure it is not stretched
         * by always giving it its intrinsic dimensions. If the wallpaper is larger than the
         * screen, it will simply get clipped but it won't impact performance.
         */
        private class ClippedDrawable extends Drawable {
            private final Drawable mWallpaper;
    
            public ClippedDrawable(Drawable wallpaper) {
                mWallpaper = wallpaper;
            }
    
            @Override
            public void setBounds(int left, int top, int right, int bottom) {
                super.setBounds(left, top, right, bottom);
                // Ensure the wallpaper is as large as it really is, to avoid stretching it
                // at drawing time
                mWallpaper.setBounds(left, top, left + mWallpaper.getIntrinsicWidth(),
                        top + mWallpaper.getIntrinsicHeight());
            }
    
            public void draw(Canvas canvas) {
                mWallpaper.draw(canvas);
            }
    
            public void setAlpha(int alpha) {
                mWallpaper.setAlpha(alpha);
            }
    
            public void setColorFilter(ColorFilter cf) {
                mWallpaper.setColorFilter(cf);
            }
    
            public int getOpacity() {
                return mWallpaper.getOpacity();
            }
        }





  • 相关阅读:
    在web大作业中曾经遇到的程序测试案例…
    软件测试技术 hw3
    软件测试技术 hw2
    软件测试技术 上机实验1
    软件项目管理 hw1
    软件测试技术 hw1
    软件测试技术-第七题
    软件测试技术 上机实验1
    软件测试技术 homework2
    软件项目管理 homework1 曾经做过的project
  • 原文地址:https://www.cnblogs.com/happyxiaoyu02/p/6818958.html
Copyright © 2020-2023  润新知