欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

创建Android桌面上的应用程序的快捷方式图标,android快捷方式,import andro

来源: javaer 分享于  点击 29389 次 点评:148

创建Android桌面上的应用程序的快捷方式图标,android快捷方式,import andro


import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.graphics.Typeface;import android.graphics.drawable.BitmapDrawable;import android.os.Bundle;import android.view.Menu;public class MainActivity extends Activity {  @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        installShortCut();    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    private void installShortCut(){         Intent shortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");         shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));         // 是否可以有多个快捷方式的副本,参数如果是true就可以生成多个快捷方式,如果是false就不会重复添加         shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, generatorContactCountIcon(((BitmapDrawable)(getResources().getDrawable(R.drawable.ic_launcher))).getBitmap()));         shortcutIntent.putExtra("duplicate", false);         Intent mainIntent = new Intent(Intent.ACTION_MAIN);         mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);         // 要删除的应用程序的ComponentName,即应用程序包名+activity的名字         //intent2.setComponent(new ComponentName(this.getPackageName(), this.getPackageName() + ".MainActivity"));         mainIntent.setClass(this, this.getClass());         shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, mainIntent);         //shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));         shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, generatorContactCountIcon(((BitmapDrawable)(getResources().getDrawable(R.drawable.ic_launcher))).getBitmap()));         sendBroadcast(shortcutIntent);     }     private Bitmap generatorContactCountIcon(Bitmap icon){         //初始化画布         int iconSize=(int)getResources().getDimension(android.R.dimen.app_icon_size);         Bitmap contactIcon=Bitmap.createBitmap(iconSize, iconSize, Config.ARGB_8888);         Canvas canvas=new Canvas(contactIcon);         //拷贝图片         Paint iconPaint=new Paint();         iconPaint.setDither(true);//防抖动         iconPaint.setFilterBitmap(true);//用来对Bitmap进行滤波处理,这样,当你选择Drawable时,会有抗锯齿的效果         Rect src=new Rect(0, 0, icon.getWidth(), icon.getHeight());         Rect dst=new Rect(0, 0, iconSize, iconSize);         canvas.drawBitmap(icon, src, dst, iconPaint);         //在图片上创建一个覆盖的联系人个数         int contacyCount=11;         //启用抗锯齿和使用设备的文本字距         Paint countPaint=new Paint(Paint.ANTI_ALIAS_FLAG|Paint.DEV_KERN_TEXT_FLAG);         countPaint.setColor(Color.RED);         countPaint.setTextSize(20f);         countPaint.setTypeface(Typeface.DEFAULT_BOLD);         canvas.drawText(String.valueOf(contacyCount), iconSize-18, 25, countPaint);         return contactIcon;     } }
相关栏目:

用户点评