- 浏览: 87816 次
- 性别:
- 来自: 北京
最新评论
-
LiuYiJie2007:
public static String getPublicK ...
Android publickey获取 -
LiuYiJie2007:
getPublicKey( )是你自己写法方法 是什么?new ...
Android publickey获取 -
liujia9234:
我试了,不行,最不靠谱了
最靠谱的禁止ViewPager滑动方法 -
kedongjun:
非常强大
关于android通讯录加载大数据的优化问题 -
xunhuan01:
view.getImageMatrix(), savedMat ...
多点触摸放大图片的自定义listener
在我们开发一些如短消息、应用商店等应用时,会考虑在短消息的图标上加上未读短信的数量,在应用商店上加上可以升级的应用数量,这样不占太大空间还能达到提示的目的。
本节eoe就以一个展示手机内联系人数量的例子来演示怎么在一个图标的上面加上数字的例子,也就是一个数字overlay。做过google map开发的知道overlay这个东西。
一:你可学到
1.手机内依据Uri查看联系人
2.权限的添加
3.获取手机内任意一款应用的应用图标
4.对图形的处理,如复制,为图片加上覆盖层--数字。
5.使用RemoteView自定义Notification
二:开始行动
1.新建名为NotificationIconCount的Android Project。附件中有最终版本的项目工程
2.首先修改AndroidManifest.xml,加入权限<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>,因为我们要读取联系人。
3.修改main.xml如下,这里定义一个ImageView,勇于预览我们处理好的加上数字的图标。
4.先来获取手机内通讯录的图标,如果没有获取到,则使用该应用的图标.
这里用到一个自定义的根据资源图标id获取图片的函数,很简单,代码如下:
5.获取到图标之后就要对这个图标进行处理了,要为该图标加上联系人数量的覆盖,首先我们看获取联系人个数的函数。
这里采用Uri的方式获取联系人的cursor,然后获取个数。
6. 有了图标和联系人个数就可以生成带联系人个数的图标了,我们看下生成的这个函数。
本节eoe就以一个展示手机内联系人数量的例子来演示怎么在一个图标的上面加上数字的例子,也就是一个数字overlay。做过google map开发的知道overlay这个东西。
一:你可学到
1.手机内依据Uri查看联系人
2.权限的添加
3.获取手机内任意一款应用的应用图标
4.对图形的处理,如复制,为图片加上覆盖层--数字。
5.使用RemoteView自定义Notification
二:开始行动
1.新建名为NotificationIconCount的Android Project。附件中有最终版本的项目工程
2.首先修改AndroidManifest.xml,加入权限<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>,因为我们要读取联系人。
3.修改main.xml如下,这里定义一个ImageView,勇于预览我们处理好的加上数字的图标。
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 03. android:orientation="vertical" 04. android:layout_width="fill_parent" 05. android:layout_height="fill_parent" 06. > 07. <ImageView 08. android:id="@+id/icon" 09. android:layout_width="wrap_content" 10. android:layout_height="wrap_content" 11. android:scaleType="center" 12. android:adjustViewBounds="true"/> 13.</LinearLayout>
4.先来获取手机内通讯录的图标,如果没有获取到,则使用该应用的图标.
super.onCreate(savedInstanceState); 02. setContentView(R.layout.main); 03. mImageView=(ImageView)findViewById(R.id.icon); 04. //优先采用联系人的图标,如果不存在则采用该应用的图标 05. Drawable contactIcon; 06. try { 07. contactIcon = getPackageManager().getApplicationIcon("com.android.contacts"); 08. } catch (NameNotFoundException e) { 09. contactIcon=null; 10. } 11. Bitmap icon; 12. if(contactIcon instanceof BitmapDrawable){ 13. icon=((BitmapDrawable)contactIcon).getBitmap(); 14. }else{ 15. icon=getResIcon(getResources(), R.id.icon); 16. }
这里用到一个自定义的根据资源图标id获取图片的函数,很简单,代码如下:
/** 02. * 根据id获取一个图片 03. * @param res 04. * @param resId 05. * @return 06. */ 07. private Bitmap getResIcon(Resources res,int resId){ 08. Drawable icon=res.getDrawable(resId); 09. if(icon instanceof BitmapDrawable){ 10. BitmapDrawable bd=(BitmapDrawable)icon; 11. return bd.getBitmap(); 12. }else{ 13. return null; 14. } 15. }
5.获取到图标之后就要对这个图标进行处理了,要为该图标加上联系人数量的覆盖,首先我们看获取联系人个数的函数。
/** 02. * 获取联系人的个数 03. * @return 手里通讯录中联系人的个数 04. */ 05. private int getContactCount(){ 06. Cursor c=getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, new String[]{ContactsContract.Contacts._COUNT}, null, null, null); 07. try{ 08. c.moveToFirst(); 09. return c.getInt(0); 10. }catch(Exception e){ 11. return 0; 12. }finally{ 13. c.close(); 14. } 15. }
这里采用Uri的方式获取联系人的cursor,然后获取个数。
6. 有了图标和联系人个数就可以生成带联系人个数的图标了,我们看下生成的这个函数。
/** 02. * 在给定的图片的右上角加上联系人数量。数量用红色表示 03. * @param icon 给定的图片 04. * @return 带联系人数量的图片 05. */ 06. private Bitmap generatorContactCountIcon(Bitmap icon){ 07. //初始化画布 08. int iconSize=(int)getResources().getDimension(android.R.dimen.app_icon_size); 09. Log.d(TAG, "the icon size is "+iconSize); 10. Bitmap contactIcon=Bitmap.createBitmap(iconSize, iconSize, Config.ARGB_8888); 11. Canvas canvas=new Canvas(contactIcon); 12. 13. //拷贝图片 14. Paint iconPaint=new Paint(); 15. iconPaint.setDither(true);//防抖动 16. iconPaint.setFilterBitmap(true);//用来对Bitmap进行滤波处理,这样,当你选择Drawable时,会有抗锯齿的效果 17. Rect src=new Rect(0, 0, icon.getWidth(), icon.getHeight()); 18. Rect dst=new Rect(0, 0, iconSize, iconSize); 19. canvas.drawBitmap(icon, src, dst, iconPaint); 20. 21. //在图片上创建一个覆盖的联系人个数 22. int contacyCount=getContactCount(); 23. //启用抗锯齿和使用设备的文本字距 24. Paint countPaint=new Paint(Paint.ANTI_ALIAS_FLAG|Paint.DEV_KERN_TEXT_FLAG); 25. countPaint.setColor(Color.RED); 26. countPaint.setTextSize(20f); 27. countPaint.setTypeface(Typeface.DEFAULT_BOLD); 28. canvas.drawText(String.valueOf(contacyCount), iconSize-18, 25, countPaint); 29. return contactIcon; 30. }
发表评论
-
Android_低版本使用ActionBar
2014-08-26 11:09 1096转载 http://blog.csdn.net/tianjf0 ... -
如何屏蔽android webview高度选中框
2014-02-19 12:04 747如标题所述,解决方法是在 html的样式中加入 *{-webk ... -
屏蔽ScrollView惯性滚动的方法
2013-08-08 13:36 5714ScrollView中有一种惯性滚动的效果,想让这个Scrol ... -
android 图片LOMO效果
2013-07-25 13:59 872import android.graphics.Bitmap; ... -
GitHub最火的android 项目
2013-07-25 13:14 780GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到 ... -
listview 点击列表项时,项中的Button会触发点击效果
2013-06-05 19:21 1284开发中,难免会在列表项中, 加入Button ,而button ... -
圆形不滚动的进度条
2013-05-17 11:38 849这种效果的进度条 代码如下: package com. ... -
最靠谱的禁止ViewPager滑动方法
2013-05-15 14:44 4957最近做项目要求某种情况下ViewPager不能滑动,在网上找了 ... -
viewpager主页面响应子页面 onkeydown事件的方法
2013-05-13 19:35 1618大家在开发中不少地方要用到ViewPager这个类,ViewP ... -
Mina 学习笔记 TCP主要接口
2013-05-05 23:21 1225(1.)IoService: 这个接口 ... -
android动画插件器
2013-04-27 10:01 830首先要了解为什么需要插值器,因为在补间动画中,我们一般只定义关 ... -
imageView 的 android:maxHeight,maxWidth属性
2013-03-29 10:17 816大家使用android:maxHeight,maxWidth属 ... -
android中获取下载地址文件的类型的方法
2013-03-28 11:33 1025MimeTypeMap mimeTypeMap = Mime ... -
res与res-auto的区别
2013-03-27 14:55 3961通常我们在布局文件中使用自定义属性的时候 会这样写 xmln ... -
滑动开关控件
2013-03-26 22:39 815public class SlidButton exten ... -
TextView使用SpannableString设置复合文本
2013-03-23 23:35 8791、BackgroundColorSpan 背景色 Sp ... -
Android编程之SparseArray<E>详解
2013-03-21 23:03 984一、构造 从构造方法我 ... -
判断系统是否支持 DownloadManager服务
2013-03-18 14:25 862public static boolean isDownloa ... -
android ndk native_activity.h
2013-03-12 15:25 1767#ifndef ANDROID_NATIVE_ACTIVITY ... -
android ndk obb.h
2013-03-12 15:14 1133#ifndef ANDROID_OBB_H #define A ...
相关推荐
这通常被用在未读短信数提醒、待更新应用数提示等场景,提升用户体验,使用户一眼就能看到有多少未处理的内容。在本教程中,我们将深入探讨如何在Android应用中实现这一功能。 首先,我们需要了解Android的通知系统...
3. 如果使用的是自定义的`Application`类并且目标设备是Android 5.0以下的版本,还需要在AndroidManifest.xml中为`<application>`标签添加`android:name="android.support.multidex.MultiDexApplication"`属性。...
在“webrtc-android-codelab”中,我们可以找到一个实践教程,类似于Google开发者网站上的WebRTC Web codelab。这个codelab的目的在于帮助Android开发者了解如何在自己的应用中集成WebRTC技术。通过这个教程,开发者...
`PreferenceFragment`是Android系统提供的一种用于构建设置界面的组件,它允许开发者在Fragment中添加和管理各种偏好设置,比如开关、选择列表等。在API 21及以上版本,`PreferenceFragment`已经被原生支持,但在更...
总结来说,`mipsel-linux-android-4.9`是Android NDK的一个组成部分,它允许Windows 64位用户在本地环境中为MIPS架构的Android设备编译原生代码。通过正确配置和使用这个工具链,开发者可以充分利用C/C++的性能优势...
本文将详细介绍两种在Android中为图片加上数字效果的方法:一种是利用`RelativeLayout`布局,另一种则是通过生成位图进行绘制。 ### 1. 使用`RelativeLayout`方法 `RelativeLayout`是Android中的一个布局容器,它...
《深入解析Android Support Library v7 AppCompat》 在Android应用开发中,为了兼容不同版本的Android系统,开发者经常需要利用Android Support Library。其中,v7 appcompat库是至关重要的一个部分,它允许开发者...
在安卓(Android)开发中,数字标识控件是一种常见的UI元素,用于显示数字或进行计数操作。在这款"安卓Android源码——数字标识控件.zip"中,开发者可能包含了自定义数字标识控件的源代码,以实现特定的功能或者视觉...
在Android开发中,`android-support-v7-appcompat`库是一个至关重要的组件,它极大地扩展了Android API的功能,使得开发者能够在更早的Android版本上实现一些高版本特性。这个库是Android Support Library系列的一...
在IT行业中,图标、灯、鼠标和按钮等元素是用户界面设计的重要组成部分,尤其是在软件开发中。本资源包“各种图标,灯-鼠标-按钮-png-jpg”显然是一个包含这些元素图形素材的集合,主要格式为PNG和JPG,还有部分可能...
这个“android自定义全键盘随机(包含字母+标点符号+数字)”项目提供了一个解决方案,它能够适应各种Android手机系统,为用户提供一个全面的、可自定义的输入界面。 首先,我们来探讨自定义键盘的基本概念。在...
本文将详细阐述如何在Android中为EditText添加边框,并提供相关的代码清单。 1. **使用XML属性添加边框** 在Android中,可以通过修改`res/layout/activity_main.xml`布局文件中的EditText属性来添加边框。主要使用...
2. **集成Library**:将anjlab-android-inapp-billing-v3-88f7efa库导入到项目中,确保依赖正确配置。 3. **初始化**:在应用启动时,初始化`BillingClient`并建立连接,以便进行后续操作。 4. **查询商品**:使用`...
通过设置`android:numColumns`属性可以指定列数,例如在本例中为3。 2. **数据绑定**: GridView的数据展示是通过实现Adapter接口的类来完成的,常见的有BaseAdapter、SimpleAdapter或CursorAdapter。开发者需要在...
最后,为了让用户能清晰看到手指与小球的关联,可能需要设置透明背景,这可以通过在布局文件中为`SimpleDrawView`设置`android:background="@android:color/transparent"`来实现。 总结起来,"Android应用小实例--...
**Android-KustomerAndroidSDK-在Android应用中为您的客户提供支持** Kustomer Android SDK 是一个专门为开发者设计的工具,旨在帮助他们在Android应用程序中集成强大的客户服务功能。这个SDK使得开发者能够轻松地...
在Android系统中,一个应用程序通常有一个主入口Activity,它的图标会出现在用户桌面上,供用户点击启动应用。然而,有时开发者可能希望为同一个应用创建多个入口点,以便提供不同的功能或者展示不同的界面,这就...
在Android开发中,UI设计和交互是至关重要的部分,尤其是对于用户操作反馈的动画效果。"android-ui-master"这个项目显然关注的是Android平台上的界面元素动画,特别是返回按钮的旋转和按钮转动效果。这些动画可以...
在Android开发中,"CoordinatorDemo"是一个典型的布局设计示例,它主要展示了如何使用`CoordinatorLayout`这个组件来实现高级的界面交互效果。`CoordinatorLayout`是Android Design Support Library的一部分,它提供...
【安卓(Android)期末课程设计-私人日记】 本项目是一个基于Android平台的私人日记应用程序,旨在帮助学生理解和实践Android开发中的关键概念和技术。这个课程设计适用于正在学习Android开发的初级到中级水平的...