精华内容
下载资源
问答
  • Flickr WallPaper

    2019-07-30 17:13:16
    懒人,不太喜欢比较烧钱的摄影,不过也经常去找些好看的图片什么的,弄回来当桌面用,不是听说Vista上面的壁纸有一部分就是从这个网站上面选的么,看了看也确实觉得这个网站的图片很不错,但有时候又觉得很麻烦...

    最近用Flickr的人越来越多了,确实这个Web 2.0的网站很方便,作的也很不错,不管是从技术层面还是从设计层面。
    我是懒人,不太喜欢比较烧钱的摄影,不过也经常去找些好看的图片什么的,弄回来当桌面用,不是听说Vista上面的壁纸有一部分就是从这个网站上面选的么,看了看也确实觉得这个网站的图片很不错,但有时候又觉得很麻烦,就想能不能通过开发个小工具来解决这个问题,找了找Flickr的API,还真有,先把API的网址贴出来,各种编程语言的类库几乎都有。
    Flickr Web Api:
    http://www.flickr.com/services/api/

    在.Net平台下呢,有一个英国程序员开发的一个类库,我觉得还是不错的,下载下来用了用,基本的功能都可以实现,目前正在设计具体的实现细节。
    Flickr Net
    http://www.codeplex.com/Wiki/View.aspx?ProjectName=FlickrNet

    最近应该会继续更新我的开发过程,希望能做出一个比较实用(起码对我),且比较轻量级实现的小程序分享给大家。
    就像这个类库的作者说得,这个类库已经算是小具规模了,后面就是看谁能做出比较出色的桌面或者Web的应用程序了,也欢迎同样对Flickr有兴趣的朋友一起来讨论这个东西。

    转载于:https://www.cnblogs.com/kevin8000903/archive/2007/05/30/764737.html

    展开全文
  • 用RePKG解包.pkg文件【Wallpaper Engine】

    万次阅读 多人点赞 2019-11-06 13:28:06
    什么是 PKG 文件扩展名? Wallpaper Engine 订阅的图片壁纸中图片如何提取? 在wallpaper engine上如何在不改变壁纸及所带特效的基础上改变BGM? 超级简单的 pkg 解包教程 Wallpaper engine PKG/TEX extractor RePKG....

    参考链接:

    用 RePKG 解包 .pkg 文件

    在这里插入图片描述

    一、需要准备的东西

    • .pkg 文件
    • RePKG.exe
    • cmd

    二、具体操作【最无脑的那种】

    1. 在桌面上创建一个文件夹
      在这里插入图片描述
    2. 打开 cmd 【win + r,输入 cmd,得到 cmd 界面】

    在这里插入图片描述
    在这里插入图片描述
    3. 按照以下方式拖入文件和输入字符
    需要注意一件事,记得输入空格
    ① 拖入 RePKG.exe
    在这里插入图片描述
    ② 输入 extract
    在这里插入图片描述
    ③ 拖入 .pkg 文件
    在这里插入图片描述
    ④ 输入 -o 【不是 0,也不是 O,是小写字母 o,嗯?大写说不定也可以,不管了】
    在这里插入图片描述
    ⑤ 拖入文件夹 output
    )
    ⑥ 键入 enter,等待处理完成
    在这里插入图片描述
    在这里插入图片描述
    ⑦ 最后给一个动图演示
    在这里插入图片描述

    三、总结

    ① 这种方式是我认为的最无脑的方式,完全不需要考虑绝对路径和相对路径的问题,无脑拖入和敲击键盘即可。只是把这个方法写在博客里。。。不保证都成功,都还不清楚的这个 .pkg 文件原来的用途是干什么的。
    ② 参考链接里面写的解决办法,都不错,都可以看看。
    ③ 最近学习如何制作 gif,以后操作步骤可以更方便的说明了 。(σ゚∀゚)σ..:*☆哎哟不错哦

    点我回顶部

     
     
     
     
     
     
     
    Fin.

    展开全文
  • Android Wallpaper之设置壁纸流程

    万次阅读 2018-04-05 14:36:18
    什么是壁纸?android wallpaper包括锁屏壁纸和桌面壁纸,壁纸又区分静态和动态两种。我们每天使用手机第一眼看到的就是壁纸,好看的壁纸对于手机的颜值也有大大的提升(滑稽),就让我们对壁纸一探究竟吧。本文基于...

    What?

    什么是壁纸?

    android wallpaper包括锁屏壁纸和桌面壁纸,壁纸又区分静态和动态两种。我们每天使用手机第一眼看到的就是壁纸,好看的壁纸对于手机的颜值也有大大的提升(滑稽),就让我们对壁纸一探究竟吧。


    本文基于Android 8.1源码,相关文件如下:

    1./frameworks/base/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java

    2./frameworks/base/services/core/java/android/app/WallpaperManager.java

    3./frameworks/base/core/java/android/service/wallpaper/WallpaperService.java

    4./frameworks/base/core/java/android/service/wallpaper/IwallpaperService.aidl

    5./frameworks/base/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java

    6./frameworks/base/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java

    7./frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java


    How?

    1.作为开发者如何去设置壁纸?

    2.壁纸是怎么显示的?

    3.壁纸存储在什么位置?


    如何设置壁纸?举个栗子。


    咱们手机中一般有内置主题的应用,在这里可以下载使用非常多好看的壁纸,点击即可设置为锁屏或桌面壁纸。

    设置方法很简单,look:

    WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
    try {
    wallpaperManager.setStream(InputStream,null,true,WallpaperManager.FLAG_LOCK);
    } catch (IOException e) {
       e.printStackTrace();
    }

    三步骤:

    1.添加设置壁纸的权限

    <uses-permission android:name="android.permission.SET_WALLPAPER"/>

    2.获取WallpaperManager对象

    3.设置壁纸,四个参数分别对应:

    a.InputStream:图片对于的输入流

    b.visibleCropHint:图片裁剪相关,一般默认为null

    c.allowBack:是否允许回退

    d.which:壁纸分为锁屏壁纸和桌面壁纸,所以需要设置FLGA:锁屏壁纸--WallpaperManager.FLAG_LOCK,桌面壁纸:WallpaperManager.FLAG_SYSTEM

    壁纸是如何显示的?

    下面就对如上图中的每个过程做一个简单的分析:

    1.setStream

    try {
            //sGlobals.mService即WallpaperManagerService
            ParcelFileDescriptor fd = sGlobals.mService.setWallpaper(null,
                    mContext.getOpPackageName(), visibleCropHint, allowBackup,
                    result, which, completion, UserHandle.myUserId());
            if (fd != null) {
                FileOutputStream fos = null;
                try {
                    //将壁纸copy一份并存储到对应目录,默认是/data/system/users/0/wallpaper(或wallpaper_lock),其中0是主用户的userId,支持多用户
                    fos = new ParcelFileDescriptor.AutoCloseOutputStream(fd);
                    copyStreamToWallpaperFile(bitmapData, fos);
                    fos.close();
                    completion.waitForCompletion();
                } finally {
                    IoUtils.closeQuietly(fos);
                }
            }
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    2.WallpaperManagerService.java#setWallpaper

        @Override
        public ParcelFileDescriptor setWallpaper(String name, String callingPackage,
                                                 Rect cropHint, boolean allowBackup, Bundle extras, int which,
                                                 IWallpaperManagerCallback completion, int userId) {
    
            //检查有没有设置壁纸的权限
            checkPermission(android.Manifest.permission.SET_WALLPAPER);
            //调用setStream方法的时候参数which必须是正确的
            if ((which & (FLAG_LOCK|FLAG_SYSTEM)) == 0) {
                final String msg = "Must specify a valid wallpaper category to set";
                Slog.e(TAG, msg);
                throw new IllegalArgumentException(msg);
            }
    
            /* If we're setting system but not lock, and lock is currently sharing the system
              * wallpaper, we need to migrate that image over to being lock-only before
              * the caller here writes new bitmap data.
              */
            //如果当前没有锁屏壁纸的话,并且是设置桌面壁纸即which == FLAG_SYSTEM,那么同时设置为锁屏壁纸
            if (which == FLAG_SYSTEM && mLockWallpaperMap.get(userId) == null) {
                if (DEBUG) {
                    Slog.i(TAG, "Migrating system->lock to preserve");
                }
                migrateSystemToLockWallpaperLocked(userId);
            }
    
            ParcelFileDescriptor pfd = updateWallpaperBitmapLocked(name, wallpaper, extras);
        }

    3.最主要的方法:WallpaperObserver#onEvent

    WallpaperObserver是WallpaperManagerservice.java的内部类,它的主要职责是监听文件变化,也就是壁纸对应的文件更新,看下源码中关于它的注释:

    /**
         * Observes the wallpaper for changes and notifies all IWallpaperServiceCallbacks
         * that the wallpaper has changed. The CREATE is triggered when there is no
         * wallpaper set and is created for the first time. The CLOSE_WRITE is triggered
         * every time the wallpaper is changed.
         */

    监听wallpaper变化并通知IWallpaperServiceCallbacks,前文提到的LockscreenWallpaper就是继承了

    IWallpaperServiceCallbacks,并重写了它的onWallppaerChanged方法,在这里更新锁屏壁纸的。

     @Override
        public void onEvent(int event, String path) {
            //如果是锁屏壁纸更新
            if (moved && lockWallpaperChanged) {
                notifyLockWallpaperChanged();
                //android 8.0新增的一个变化,锁屏包括下拉快捷的主题会根据当前的壁纸来变化,避免壁纸和锁屏的图标颜色一致导致的显示不清问题,但是有一个缺陷就是:
                //获取的是当前壁纸的主色调,而不是某个区域的主色调,这样就会导致虽然主色调是白色,比如时间的区域是黑色,这一点小米做的比较好,它是根据当前区域的壁纸的主色调来进行反色的。
                notifyWallpaperColorsChanged(wallpaper, FLAG_LOCK);
                return;
            }
    
            if (sysWallpaperChanged || lockWallpaperChanged) {
                notifyCallbacksLocked(wallpaper);
    
            }
    
            if (sysWallpaperChanged) {
                //桌面壁纸变化,那么bind ImageWallpaper,ImageWallpaper是负责显示静态桌面壁纸的
                // If this was the system wallpaper, rebind...
                bindWallpaperComponentLocked(mImageWallpaper, true,
                        false, wallpaper, null);
                notifyColorsWhich |= FLAG_SYSTEM;
            }
    
            if (lockWallpaperChanged
                    || (wallpaper.whichPending & FLAG_LOCK) != 0) {
                if (DEBUG) {
                    Slog.i(TAG, "Lock-relevant wallpaper changed");
                }
                // either a lock-only wallpaper commit or a system+lock event.
                // if it's system-plus-lock we need to wipe the lock bookkeeping;
                // we're falling back to displaying the system wallpaper there.
                //如果参数which是system+lock,也就是同时设置锁屏和桌面壁纸,那么remove锁屏壁纸,因为已经是同一张壁纸了
                if (!lockWallpaperChanged) {
                    mLockWallpaperMap.remove(wallpaper.userId);
                }
                // and in any case, tell keyguard about it
                notifyLockWallpaperChanged();
                notifyColorsWhich |= FLAG_LOCK;
            }
    
        }
    先看锁屏壁纸更新这一部分:
    void notifyLockWallpaperChanged() {
            final IWallpaperManagerCallback cb = mKeyguardListener;
            if (cb != null) {
                try {
                    cb.onWallpaperChanged();
                } catch (RemoteException e) {
                    // Oh well it went away; no big deal
                }
            }
        }

    mKeyguardListener赋值的地方:

        @Override
        public boolean setLockWallpaperCallback(IWallpaperManagerCallback cb) {
            checkPermission(android.Manifest.permission.INTERNAL_SYSTEM_WINDOW);
            synchronized (mLock) {
                mKeyguardListener = cb;
            }
            return true;
        }

    前面我们说过LockscreenWallpaper.java是继承了IWallpaperManagerCallback的,那么setLockWallpaperCallback调用的地方应该是在这里:

      public LockscreenWallpaper(Context ctx, PhoneStatusBar bar, Handler h) {
            
            mService = IWallpaperManager.Stub.asInterface(
                    ServiceManager.getService(Context.WALLPAPER_SERVICE));
            mWallpaperManager = (WallpaperManager) ctx.getSystemService(Context.WALLPAPER_SERVICE);
            try {
                //在这里给mKeyguardListener赋值的
                mService.setLockWallpaperCallback(this);
            } catch (RemoteException e) {
                Log.e(TAG, "System dead?" + e);
            }
        }

    4.LockscreenWallpaper.java#onWallpaperChanged:

    @Override
        public void onWallpaperChanged() {
            // Called on Binder thread.
            mH.removeCallbacks(this);
            mH.post(this);
        }

    LockscreenWallpaper实现了Runnable接口的,所以看下它的run方法:

        @Override
        public void run() {
            // Called in response to onWallpaperChanged on the main thread.
            mLoader = new AsyncTask<Void, Void, LoaderResult>() {
                @Override
                protected LoaderResult doInBackground(Void... params) {
                    return loadBitmap(currentUser, selectedUser);
                }
                @Override
                protected void onPostExecute(LoaderResult result) {
                    super.onPostExecute(result);
                    if (isCancelled()) {
                        return;
                    }
                    if (result.success) {
                        mCached = true;
                        mCache = result.bitmap;
                        mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null);
                        //通知StatsuBar更新壁纸
                        mBar.updateMediaMetaData(
                                true /* metaDataChanged */, true /* allowEnterAnimation */);
                    }
                    mLoader = null;
                }
            }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        }
    异步获取壁纸,并通知StatusBar去更新壁纸。

    5.StatusBar.java#updateMediaMetaData:

    这里主要就是对锁屏壁纸所在的View做最基本的setImageBitmap。

    6.再看桌面壁纸部分:


    6.1 bindWallpaperComponentLocked

    if (sysWallpaperChanged) {
         // If this was the system wallpaper, rebind...
       bindWallpaperComponentLocked(mImageWallpaper, true,
                              false, wallpaper, null);
        notifyColorsWhich |= FLAG_SYSTEM;
      }

    mImageWallpaper = ComponentName.unflattenFromString(
                    context.getResources().getString(R.string.image_wallpaper_component));

    也就是一开始提到的:

    /frameworks/base/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java

     boolean bindWallpaperComponentLocked(ComponentName componentName, boolean force,
                                             boolean fromUser, WallpaperData wallpaper, IRemoteCallback reply) {
    
    
            Intent intent = new Intent(WallpaperService.SERVICE_INTERFACE);
    
    
            WallpaperConnection newConn = new WallpaperConnection(wi, wallpaper);
            //componentName就是ImageWallpaper
            intent.setComponent(componentName);
            intent.putExtra(Intent.EXTRA_CLIENT_LABEL,
                    com.android.internal.R.string.wallpaper_binding_label);
            intent.putExtra(Intent.EXTRA_CLIENT_INTENT, PendingIntent.getActivityAsUser(
                    mContext, 0,
                    Intent.createChooser(new Intent(Intent.ACTION_SET_WALLPAPER),
                            mContext.getText(com.android.internal.R.string.chooser_wallpaper)),
                    0, null, new UserHandle(serviceUserId)));
        }
    ImageWallpaper继承了Service,既然是bindService,那么主要看下conn,也就是WallpaperConnection。
    它的onServiceConnected方法:
       @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            synchronized (mLock) {
                if (mWallpaper.connection == this) {
                    mService = IWallpaperService.Stub.asInterface(service);
                    attachServiceLocked(this, mWallpaper);
                    // XXX should probably do saveSettingsLocked() later
                    // when we have an engine, but I'm not sure about
                    // locking there and anyway we always need to be able to
                    // recover if there is something wrong.
                    saveSettingsLocked(mWallpaper.userId);
                    FgThread.getHandler().removeCallbacks(mResetRunnable);
                }
            }
        }

    6.2 继续看attachServcieLocked方法:

    void attachServiceLocked(WallpaperConnection conn, WallpaperData wallpaper) {
            try {
                conn.mService.attach(conn, conn.mToken,
                        TYPE_WALLPAPER, false,
                        wallpaper.width, wallpaper.height, wallpaper.padding);
            } catch (RemoteException e) {
                Slog.w(TAG, "Failed attaching wallpaper; clearing", e);
                if (!wallpaper.wallpaperUpdating) {
                    bindWallpaperComponentLocked(null, false, false, wallpaper, null);
                }
            }
       }
    conn.mService.attach是调用了IWallpaperServiceWrapper 的attach方法,IWallpaperServiceWrapper 继承了
    IWallpaperService.Stub。
           @Override
            public void attach(IWallpaperConnection conn, IBinder windowToken,
                    int windowType, boolean isPreview, int reqWidth, int reqHeight, Rect padding) {
                new IWallpaperEngineWrapper(mTarget, conn, windowToken,
                        windowType, isPreview, reqWidth, reqHeight, padding);
            }

    在看它的构造方法,发送了一个DO_ATTACH的消息:

    Message msg = mCaller.obtainMessage(DO_ATTACH);
    mCaller.sendMessage(msg);
                     case DO_ATTACH: {
                        try {
                            mConnection.attachEngine(this);
                        } catch (RemoteException e) {
                            Log.w(TAG, "Wallpaper host disappeared", e);
                            return;
                        }
                        Engine engine = onCreateEngine();
                        mEngine = engine;
                        mActiveEngines.add(engine);
                        engine.attach(this);
                        return;
                    }

    onCreateEngine也是一个抽象的方法:

       /**
         * Must be implemented to return a new instance of the wallpaper's engine.
         * Note that multiple instances may be active at the same time, such as
         * when the wallpaper is currently set as the active wallpaper and the user
         * is in the wallpaper picker viewing a preview of it as well.
         */
        public abstract Engine onCreateEngine();

    实现的地方仍然是在ImageWallpaper.java里

       @Override
        public Engine onCreateEngine() {
            mEngine = new DrawableEngine();
            return mEngine;
        }

    DrawableEngine是自定义的继承Engine的内部类

    最后调用engine.attach方法。

    WallpaperService.java的attach方法:

    void attach(IWallpaperEngineWrapper wrapper) {
          onCreate(mSurfaceHolder);
    
          mInitializing = false;
          mReportedVisible = false;
          updateSurface(false, false, false);
     }

    6.3 onCreate(mSurfaceHolder)

    它是一个抽象方法

           /**
             * Called once to initialize the engine.  After returning, the
             * engine's surface will be created by the framework.
             */
            public void onCreate(SurfaceHolder surfaceHolder) {
            }
    它是一个抽象方法,那么真正的实现是在它的子类,也就是ImageWallpaper.java里
           @Override
            public void onCreate(SurfaceHolder surfaceHolder) {
                if (DEBUG) {
                    Log.d(TAG, "onCreate");
                }
                super.onCreate(surfaceHolder);
                mDefaultDisplay = getSystemService(WindowManager.class).getDefaultDisplay();
                setOffsetNotificationsEnabled(false);
                updateSurfaceSize(surfaceHolder, getDefaultDisplayInfo(), false /* forDraw */);
            }
    
    surfaceHolder是在父类里初始化的,surfaceHolder = new BaseSurfaceHolder();

    6.4 updateSurfaceSize 

    在这里主要是继续调用loadWallpaper方法去解析壁纸并最终绘制到surfaceHolder上。

    6.5 drawFrame

    对壁纸进行一些裁剪操作,根据是否支持硬件加速来决定绘制的方法:

        //支持硬件加速
        if (mIsHwAccelerated) {
            if (!drawWallpaperWithOpenGL(sh, availw, availh, xPixels, yPixels)) {
                drawWallpaperWithCanvas(sh, availw, availh, xPixels, yPixels);
            }
        } else {
            drawWallpaperWithCanvas(sh, availw, availh, xPixels, yPixels);
            if (FIXED_SIZED_SURFACE) {
                // If the surface is fixed-size, we should only need to
                // draw it once and then we'll let the window manager
                // position it appropriately.  As such, we no longer needed
                // the loaded bitmap.  Yay!
                // hw-accelerated renderer retains bitmap for faster rotation
                unloadWallpaper(false /* forgetSize */);
            }
        }

    到这里,把壁纸的设置的简单过程基本上就讲完了,作为笔记做一个记录。

    如有错误的地方,欢迎指正。




    展开全文
  • 这样干净好看的桌面Wallpaper Engine+Rainmeter来实现的,Wallpaper Enginesteam下一个动态壁纸软件,需要购买,19元。(非必需,找一些高清壁纸设为桌面背景也可) 因为以前都没有接触过Rainmeter这个软件,...

    闲来无事逛知乎,看到话题“为什么很多人电脑桌面上软件图标寥寥无几甚至空空荡荡?请问是怎么做到的?”实不相瞒看见高赞回答们的桌面(下图),我心动了!
    在这里插入图片描述

    心动不如行动,动手做ing……

    这样干净好看的桌面是用Wallpaper Engine+Rainmeter来实现的,Wallpaper Engine是steam下一个动态壁纸软件,需要购买,19元。(非必需,找一些高清壁纸设为桌面背景也可)

    因为以前都没有接触过Rainmeter这个软件,所以趁着这次机会熟悉并且学习基础的使用方法。

    ###首先,进入Rainmeter官网(https://www.rainmeter.net/) 下载并安装软件
    我下的是4.3.1版本的。
    在这里插入图片描述
    在这里插入图片描述
    桌面出现这些框框说明安装已经大功告成啦!

    在这里插入图片描述
    ###下载雨滴皮肤的插件(https://zhutix.com/tag/rainmeter/ )
    Rainmeter可以在你的桌面上显示包含内存,电池,RSS,天气、时间等信息的可定制皮肤,许多皮肤还具有一定的功能:它们能帮你记录下你即将要做的事,把你的微博发布出去,***体播放器等。它还能美化你的桌面,你可以完全按照自己的意愿去定制一款你想要皮肤…

    刚接触这个软件,我也是才知道雨滴的皮肤是完全可以由自己写代码写出来的,但此时我并不熟悉相关的语法,所以为了简便更换,我们可以先在皮肤网站找一个模板使用。


    如图,我选择了红框的模板下载解压,安装雨滴形状的文件,这个模板的组件将会出现在桌面,然后自己拖动即可。在这里插入图片描述
    在这里插入图片描述
    打开雨滴工具可以看到导入的皮肤模板包含的组件模块,每个包里的ini文件是配置文件,编程ini文件就可出现相应的组块。

    再看到桌面,鼠标箭头放在部件上右键就可以看到这部分对应的是哪个模块在这里插入图片描述
    如图所示,这几个图标对应的组块应该是Links.

    改动图标组件ini文件

    我选到的模板是有一个图标组件的(点击图标可以快速跳转到某个应用),也就是说只有这个组件需要改动ini文件进行编程,其实也算不上编程,所有的代码模板中已经写好了,只是需要能看懂一些语法、改动一些路径就好了。

    提前需要做好的准备
    根据组件有几个图标首先确定选择几个最常用的应用。

    • 找好应用的图标logo图(一般为.png),并存在一个文件夹里,存储位置自由决定(别存桌面),我存在D盘,路径:D:\桌面logo。在这里插入图片描述
    • 桌面有应用的快捷方式(可以快速找到并复制应用(.exe)文件位置

    打开图标组件对应的ini文件(此模板为Links.ini);
    我们需要更改的就是每个图标的logo路径和.exe应用路径,快速方法如下,

    1. ctrl+F搜索:ImageName
      等号后面填入logo图片的路径。
      在这里插入图片描述
      第一个图标我放的是电脑图标,路径如下:
      在这里插入图片描述
    2. 往下找几行,找到LeftMouseUpAction
      在这里插入图片描述
      这里填入的是.exe应用路径
      以qq为例:
      桌面快捷方式右键->属性,
      直接复制目标行的所有内容:“C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe”
      在这里插入图片描述
      然后填入双引号内(你没看错!!这里就是两对双引号,这里我之前以为是多打了双引号去掉了一对,然后点图标一直点不开)
      在这里插入图片描述
      然后将后面几个图标重复上述两个步骤,就完成了,记得每次改完ini文件都要打开雨滴的任务管理器刷新才能看到最新的效果。

    tip:此电脑/我的电脑 路径填入
    ::{20D04FE0-3AEA-1069-A2D8-08002B30309D} 即可。

    任务栏隐藏

    因为我电脑是win7,所以Translucent(win10应用商店自带的应用,可以使任务栏完全透明)使用不了,所以我这里就将她的位置放在右侧,并且设置了隐藏任务栏。

    最终效果如下:
    看着新桌面还是美滋滋的~

    展开全文
  • 也有人认为,这天母难日,更应该给自己的妈妈送上祝福······无论如何,这天的仪式感不能少,这可是一年只有一次的生日啊。随着短视频爆火,很多小伙伴也会给自己剪辑、制作生日主题视频,以分享给大家。不过...
  • android7.0 wallpaper显示流程

    千次阅读 2018-02-09 19:15:48
    看完此文后就知道壁纸怎么绘制出来的,什么情况下壁纸会随着桌面滑动而移动,为什么壁纸设置后被剪裁了。这里主要讲解静态壁纸的显示流程,不考虑动态壁纸,所以下面提到的壁纸都指静态壁纸。壁纸即一个壁纸服务...
  • 无论您将它看作锁定时间的肖像还是提醒您永不放弃的肖像,为什么在决定时不将其下载到设备上进行思考? 在以下位置下载墙纸: 2560×1440 1920×1200 1680×1050 1440×900 1280×...
  • 说话所谓android动态壁纸一直不被开发者看好,...首先(1)我们要有一个service 当然是wallpaper的service了。。(WallpaperService)。 service 当然有一个生命周期了。。 @Override public void onCreate() {
  • 网易云音乐一个致力于发觉与共享的歌曲商品,借助技术专业音乐制作人、DJ、朋友强烈推荐及...·歌曲社交媒体,以乐聚友:身旁的人到听什么歌?百度云音乐特有歌曲社交媒体作用,帮你寻找身旁的Song mate 。 ·歌曲...
  • 没有什么比在各种完成状态下将一堆项目放在硬盘上更令人兴奋的了-如果您从不看完项目就可以完成10%和90%一样好。 现在,如前所述,作为我们示例的墙纸/桌面背景网站可能并没有为您做这件事。 不要气our,因为...
  • <div><p>我看了一下bingwallpaper.py里面的路径,我把url单独拉出来试一下应该是...为什么系统设置完的wallpaper是带水印的?谢谢</p><p>该提问来源于开源项目:genzj/pybingwallpaper</p></div>
  • 自媒体短视频大火的当下,很多人想做抖音快手搬运却无从下手,或者已经开始搬运的却见效甚微 ,今天小编给大家介绍一下怎么做短视频搬运,,比如抖音、火山、快手等平台,怎么做好搬运,首先我们要先确定搬运什么素材...
  • 工作闲暇之间,让你看一段很长的文章,你必然没有耐心看完的,图片和视频甚至直播,为什么更加受欢迎,这些都社会发展的趋势和人性的心理。所以现在短视频才如此火爆。因此,各大平台也大力支持短视频创作。...
  • 而upupoo就是这样一个很好用的桌面软件,可以与steam上付费的wallpaper engine相媲美。 看看我的桌面,就是这个软件做的: 来看看它的“创意工坊”: 里面有非常多的视频素材,比如小姐姐、英雄联盟、鬼刀...
  • 下面,让我们一起来看看都有哪些设置吧:1、读取位置信息很多小伙伴都有这样的困惑:为什么手机 APP 推送的通知,会跟自己周身的事物高度相关呢?有一种被监视的感觉。其实说到底,都手机这个「读取位置信息」设置...
  • 展开全部改了网上一个选项卡切换的小插件,你看有什么不懂的再追问:html>62616964757a686964616fe4b893e5b19e31333363383333demobody{background:url(http://pic1.win4000.com/wallpaper/6/578855acae491.jpg)no...
  • <div><p>...比较好奇为什么会有这个差异</p><p>该提问来源于开源项目:huiyadanli/PasteEx</p></div>
  • 事情这样的。。。昨天写完那篇实用小工具以后,后台出现了很多这样的留言 ↓ ↓ ↓老实说,每次露出桌面的时候,大家对动态壁纸的呼声都挺高的...以后别羡慕世超的桌面了,自己去挑一个喜欢的吧~1wallpaper engin...
  • 美化您的苹果Mac桌面,Wallpaper Wizard中文破解版绝对个好选择,它拥有拥有无限的壁纸和背景,无论您想要什么墙纸,Wallpaper Wizard for mac都可以找到,您可以随时获得一个新的桌面,而无需移动鼠标哦,一款...
  • 瞬间闪画面问题最重要检测现象,怎么闪的,闪什么画面。使用比如quicktime等能够单桢播放的播放器 目前比较常见的case 1.wallpaper被hide.重点检测wallpaper的visibility变化,常见原因有target window被hide或者...
  • 它总是很浪漫,或坐式花园或草坪,试图找出什么形状,我们可以看到从心在云中的动物,飞机,城堡等,今天就分享一些精美的云壁纸,喜欢的可以尽情下载 [ Download Wallpaper ] [ Download Wallpaper ] [ ...
  • 在这篇文章的第一部分,我谈到了什么是模块,开发者为什么使用它们,以及,在你的程序中实现模块的不同方式。 在这第二部分,将会回答捆绑模块到底意味着什么:为什么要捆绑,捆绑的不同方法,以及在网页开发中...
  • launcher 分析

    千次阅读 2011-08-01 10:08:07
    LauncherAndroid系统的桌面系统,比较重要也比较复杂的程序,这里对其代码做一个分析,希望起到抛砖引玉的作用。 1. Launcher有什么? live folder , widget , shortcut , wallpaper ,见 onActivit
  • 一、什么是Android壁纸? Android中,壁纸分为动态壁纸和静态壁纸两种。静态壁纸一张图片,动态壁纸以动画为表现形式,有的可以对用户的操作作出反应。二者表现形式看似差异很大,但是二者的本质统一的: 它们...
  • LauncherAndroid系统的桌面系统,比较重要也比较复杂的程序,这里对其代码做一个分析,希望起到抛砖引玉的作用。 1. Launcher有什么? live folder , widget , shortcut , wallpaper ,见 onActivityRes
  • 说白了,Launcher都有什么。想到了就来补充,持续维护。不太容易注意的点。...2. 桌面上都是什么东西: Container : Workspace、Hotseat、Folder。 ITEM_TYPE : APPLICATION、Shortcut、Folder、Widget。 ...

空空如也

空空如也

1 2 3
收藏数 59
精华内容 23
关键字:

wallpaper是什么