Android获取快捷方式图标信息

原创 2013年10月18日 15:22:43

       如何获取程序快捷方式的坐标

      先说我是个新手,毕业接触Android4个月的时间,今天是第一次发文章,内容有什么不对的地方欢迎大家指正,共同提高。

      这篇文章主要解决的问题是获取程序快捷方式图标的位置。 探讨这个问题的原因是对金山清理大师那个清理内存的快捷方式是怎么实现那个效果感兴趣,自己简单的试了一下。感觉有所收获,和大家一起分享。


        我做的仅仅就是更具快捷方式的位置显示一张图片,很简单的一个测试。先看图片:

        效果不怎么好,功能基本上都有了。

基本上需要注意的地方有两点:

一、透明主题。在AndroidManifest.xml中配置透明主题,可以实现背景为当前页面。

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" 
        android:theme="@android:style/Theme.Translucent" >
        <activity
            android:name=".ApplicationTestActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

二、获取桌面快捷方式的坐标。

通过Launcher源码中Launcher.java中onClick()方法可以看到:

  public void onClick(View v) {
        // Make sure that rogue clicks don't get through while allapps is launching, or after the
        // view has detached (it's possible for this to happen if the view is removed mid touch).
        if (v.getWindowToken() == null) {
            return;
        }

        if (!mWorkspace.isFinishedSwitchingState()) {
            return;
        }

        Object tag = v.getTag();
        if (tag instanceof ShortcutInfo) {
            // Open shortcut
            final Intent intent = ((ShortcutInfo) tag).intent;
            int[] pos = new int[2];
            v.getLocationOnScreen(pos);
            intent.setSourceBounds(new Rect(pos[0], pos[1],
                    pos[0] + v.getWidth(), pos[1] + v.getHeight()));

            boolean success = startActivitySafely(v, intent, tag);

            if (success && v instanceof BubbleTextView) {
                mWaitingForResume = (BubbleTextView) v;
                mWaitingForResume.setStayPressed(true);
            }
        } else if (tag instanceof FolderInfo) {
            if (v instanceof FolderIcon) {
                FolderIcon fi = (FolderIcon) v;
                handleFolderClick(fi);
            }
        } else if (v == mAllAppsButton) {
            if (isAllAppsVisible()) {
                showWorkspace(true);
            } else {
                onClickAllAppsButton(v);
            }
        }
    }


中有intent.setSourceBounds(new Rect(pos[0], pos[1], pos[0] + v.getWidth(), pos[1] + v.getHeight()))。放置了快捷方式的坐标信息,通过startActivitySafely启动程序。因此我们在程序中可以通过

Rect rect = this.getIntent().getSourceBounds();

得到Rect对象,从而获得快捷方式的坐标信息。然后可以通过对这些信息进行处理,从而实现一个看起来比较炫的效果。

声明:本人菜鸟,有误的地方欢迎指正!!


Android修改桌面快捷方式的图片和名称

项目要求在应用运行过程中生成了桌面快捷方式,这个很简单,网上很多资料,但是除了这个还要在应用中修改这些快捷方式的图标和名字,找了很久没有找到方法。     怎么办呢……     正在苦恼的时候突然...
  • u014165119
  • u014165119
  • 2015年07月16日 20:47
  • 1382

【Android开发技巧】 - 如何获取应用Shortcut在Launcher坐标信息

本文章由Jack_Jia编写,转载请注明出处。   文章链接:http://blog.csdn.net/jiazhijun/article/details/8878941 作者:Jack_Ji...
  • jiazhijun
  • jiazhijun
  • 2013年05月03日 11:12
  • 5498

一个apk多个入口,在桌面上创建多个应用图标

原文:http://zmywly8866.github.io/2015/01/20/one-apk-multi-entry.html?utm_source=tuicool 前言  ...
  • beyond181
  • beyond181
  • 2015年04月07日 20:47
  • 2605

Android应用程序添加、删除快捷方式

最近项目需要做一个快捷方式,不是应用程序的快捷方式,而是应用程序某一个功能的快捷方式,比如金山电池的“快捷省电”桌面快捷方式,在做的过程中,遇到了一些问题,现在记录一下,万一有人和我碰到同样的问题,不...
  • Ancywawa
  • Ancywawa
  • 2016年06月24日 09:43
  • 1217

android 一个应用两个入口一个应用两个快捷方式(不同图标显示)

我们在 Android开发中,一个工程对应一个AndroidManifest.xml文件,这个文件中包含有该项目的一些设置,如权限、SDk版Activity、Service信息等。一般而言,这个文件中...
  • u011467537
  • u011467537
  • 2015年12月22日 15:10
  • 2144

C#如何获取快捷方式指向的目标文件

原文地址:http://www.cnblogs.com/DoNetCShap/p/4221854.html 前几天,做个小程序时遇到的问题,在百度上搜索了很久,没有发现好的解决方案,...
  • qq798833488
  • qq798833488
  • 2016年09月12日 13:50
  • 1698

Android 如何在Launcher桌面创建或者删除快捷图标

Android 如何在Launcher桌面创建或者删除快捷图标,见如下代码: public static void deleteShortcut(String activityName, C...
  • wangbaochu
  • wangbaochu
  • 2015年07月09日 14:33
  • 1909

android笔记:长按APP图标弹出快捷方式(shortcuts)

android7.0,android 长按app图标 shortcuts android 实现3dTouch
  • xiaoyu940601
  • xiaoyu940601
  • 2017年11月28日 11:42
  • 475

如何在android桌面添加几个app图标做快捷方式

如最下方图所示,在桌面添加6个app应用的快捷方式, 在路径packages\apps\Launcher2\res\xml\default_workspace.xml文件里 1. 在桌面第...
  • mrleeapple
  • mrleeapple
  • 2015年11月27日 15:50
  • 1400

app覆盖安装后,桌面快捷方式图标和标题被改变的解决办法

在开发android项目中,遇到一个桌面快捷方式的bug,在部分samsung手机上,app覆盖安装后,以前创建的快捷方式图标和标题变成主程序的图标和标题。 一般创建桌面快捷方式是在应用程序中创建一...
  • langzxz
  • langzxz
  • 2016年03月03日 18:41
  • 1472
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android获取快捷方式图标信息
举报原因:
原因补充:

(最多只允许输入30个字)