- 博客(98)
- 资源 (3)
- 收藏
- 关注
原创 contextual action mode
在Google的开发文档的guide的menu里面,提到上下文菜单的两种形式。There are two ways to provide contextual actions:In a floating context menu. A menu appears as a floating list of menu items (similar to a dialog
2015-01-29 10:24:16 1013
原创 Android自定义控件—滑动开关
在IM即时通讯的项目中,我用过了滑动开关,那时候,还不会现在这种通过继承View自定义的方式,那时候,我用了两个ImageView通过setVisibility方法去控制的。感觉也挺方便的。(Android4.0有Switch控件,一样的效果)定义一个类继承自View,并实现他的有两个构造函数的方法。执行初始化:public class MyToggleButton extends
2015-01-28 22:21:17 693
原创 Android自定义控件—下拉菜单
效果图:实现思路是:EditText+PopupWindow+ListView(PopupWindow接触的少,注意下他的用法)package com.dystu.edittextdemo;import java.util.ArrayList;import java.util.List;import android.app.Activity;import and
2015-01-28 21:38:23 682
原创 Android自定义控件---广告条滚动
实现后的效果:1.布局:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:la
2015-01-28 21:21:25 724
原创 Android自定义控件---优酷菜单
实现的效果图:逻辑并不是很难,主要有三点:1.他的布局2.动画的原理3.onkeydown监听menu按键的事件第一个:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/t
2015-01-28 20:00:44 688
原创 Picker(Time picker&& Date picker)
Android provides controls for the user to pick a time or pick a date as ready-to-use dialogs. Each picker provides controls for selecting each part of the time (hour, minute, AM/PM) or date (month,
2015-01-28 11:35:02 720
原创 EditText的一些属性
我在IM即时通讯项目中,想在输入文字的时候,输入法上面显示发送,然后去响应我的发送消息的事件,但是不知道怎么做,于是我去查下了EdiText的文档(Google guide),获得了下面的消息:Specifying Keyboard Actions(指定action)In addition to changing the keyboard's in
2015-01-28 10:48:43 830
原创 TextView的一些重要属性
Here are some of the common input type values that define keyboard behaviors:"textCapSentences"Normal text keyboard that capitalizes the first letter for each new sentence.(大写第一个字母)"textCapWords"N
2015-01-28 10:27:52 569
原创 Borderless button
读Google的文档的时候发现的这个,想起来,我之前在即时通讯项目是这样干的,直接在button的xml属性中指定下面的属性:android:background=null;One design that can be useful is a "borderless" button. Borderless buttons resemble basic buttons except
2015-01-28 10:14:09 948
转载 Android 一张图理解getWidth和getMeasuredWidth
一张图理解getWidth和getMeasuredWidth" title="Android 一张图理解getWidth和getMeasuredWidth" style="margin:0px; padding:0px; border:0px; list-style:none">view.getMeasuredHeight()可能隐藏在上头.可能在下头.如果view没有超出屏幕的时候view.
2015-01-27 09:11:06 660
原创 Android获取状态栏,标题栏,视图的尺寸
效果如下:在onWindowFocusChanged方法中执行测量的代码。package com.dystu.viewdimen;import android.app.Activity;import android.graphics.Rect;import android.os.Bundle;import android.view.View;import android
2015-01-27 09:05:28 938
原创 Android JNI开发
什么是JNI:JNI: java本地开发接口, JNI 是一个协议 ,这个协议用来沟通java代码和外部的本地代码(c/c++). 通过这个协议,java代码就可以调用外部的c/c++代码 ,外部的c/c++代码也可以调用java代码。为什么用JNI:JNI扩展了java 虚拟机的能力, 驱动开发 (wifi-hotspot) ,2.3 无线热点共享;Native
2015-01-26 19:51:37 503
转载 83Android实战技巧:深入解析AsyncTask
AsyncTask的介绍及基本使用方法关于AsyncTask的介绍和基本使用方法可以参考官方文档和Android实战技巧:多线程AsyncTask这里就不重复。AsyncTask引发的一个问题上周遇到了一个极其诡异的问题,一个小功能从网络上下载一个图片,然后放到ImageView中,是用AsyncTask来实现的,本身逻辑也很简单,仅是在doInBackground中用HT
2015-01-26 16:00:29 587
原创 82photoview实现多点触控
PhotoView的github地址是:https://github.com/chrisbanes/PhotoView,在我的项目中,当用户发送图片后,点击图片后,进入查看大图片的页面,那么我希望在这个查看大图片的页面能够响应多点触控的事件。所以用到了这个控件。PhotoView的几个特征:Out of the box zooming, using multi-touch and
2015-01-26 15:55:27 754
原创 81ACTION_GET_CONTENT和ACTION_PICK的区别
即时通讯做到选择图片的功能:我是这样处理的: public void selectPicFromLocal() { Intent intent; if (Build.VERSION.SDK_INT < 19) { intent = new Intent(Intent.ACTION_GET_CONTENT); int
2015-01-23 09:34:28 3731
原创 80使用相机录像
请求相机权限(Request Camera Permission)为了让别人知道你的应用依赖照相机,在你的manifest文件中添加标签:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.dystu.videodemo" android:versionCode
2015-01-22 15:59:40 630
原创 79使用相机拍照
请求使用相机权限(Request Camera Permission)如果拍照是你的应用的必要功能,那么限制它在在Google Play中仅对有相机设备可见。为了让别人知道你的应用依赖照相机,在你的manifest文件中添加标签:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package
2015-01-22 15:39:48 676
原创 高效显示Bitmap3--->Cached Bitmap
加载单个Bitmap到UI是简单直接的,但是如果你需要一次加载大量的图片,事情则会变得复杂起来。在大多数情况下(例如在使用ListView,GridView或ViewPager时), 屏幕上的图片和因滑动将要显示的图片的数量通常是没有限制的。通过循环利用子视图可以抑制内存的使用,GC(garbage collector)也会释放那些不再需要使用的bitmap。这些机制都非常好,但是为了保持一个
2015-01-21 15:51:14 1177
原创 高效显示Bitmap2--->非UI线程处理Bitmap
当数据源是网络或者是磁盘时(或者是任何实际源不在内存的),这些方法都不应该在main UI 线程中执行。那些情况下加载数据是不可以预知的,它依赖于许多因素(从网络或者硬盘读取数据的速度, 图片的大小, CPU的速度, etc.)。如果其中任何一个任务卡住了UI thread, 系统会出现ANR的错误。使用 AsyncTask 在后台线程中处理bitmap并且演示了如何处理并发(concurre
2015-01-21 15:40:19 629
转载 Android事件分发机制
事件分发机制的几个主要的方法:事件分发(dispatchTouchEvent(MotionEvent ev))事件拦截(onInterceptTouchEvent(MotionEvent ev))事件响应(onTouchEvent(MotionEvent ev)),其中ViewGroup响应这三个方法,View要看它是否有子View,没有子View时不响应事件拦截,Activity不响
2015-01-21 14:33:35 977
原创 高效显示Bitmap1--->高效加载大图
当我们使用下面的代码加载内存中的一张图片时,显示了下面的错误:package com.dystu.bitmapdemo;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import and
2015-01-21 10:17:30 734
原创 Android性能优化典范
我的站点:http://duoinfo.sinaapp.com/ (需要这个模板的问我要吧,我的QQ:619189810)2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提
2015-01-20 18:26:21 933
原创 Google官方demo(displayingBitmaps)
在这个demo里面,他使用的是GridView(在Fragment中)来显示图片的缩略图,当点击缩略图的时候,显示大图,使用了DiskLruCache和AsyncTask。
2015-01-19 10:12:11 1226
原创 使用LayoutAnimationController
结合《第一行代码》的ListView的例子,在ListView的setAdapter方法之前,添加下面的代码:AnimationSet set = new AnimationSet(true); Animation animation = new AlphaAnimation(0.0f, 1.0f); animation.setDuration(300); animation
2015-01-19 09:34:15 631
原创 TextSwitcher的使用
TextSwitcher 字面理解是文字交换器,是ViewSwitcher的子类,从ViewSwitcher来看,是View交换器,TextSwitcher继承自ViewSwitcher,显然是交换TextView。应用分为三步: 1.得到 TextSwitcher 实例对象 TextSwitcher switcher = (TextSwitcher) findViewById(R
2015-01-19 09:08:40 645
原创 Creating a custom ViewGroup(自定义ViewGroup)
想要实现下面的UI效果:When you’re designing your application, you might have complex views that will show up in different activities. Imagine thatyou’re creating a card game and you want to show the user’s
2015-01-17 09:24:41 738
原创 Using lazy loading and avoiding replication(延迟加载和避免重复)
1.Avoid replication using the tag<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:l
2015-01-16 09:18:06 631
原创 Combining weightSum and layout_weight
想要实现的是按钮占据屏幕的一半,无论是横屏还是竖屏:源码:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="m
2015-01-16 08:25:08 488
原创 78 使用getIdentifier()获取资源Id
使用getIdentifier()方法可以方便的获各应用包下的指定资源ID。主要有两种方法:(1)方式一Resources resources = context.getResources();int indentify = resources.getIdentifier(org.loveandroid.androidtest:drawable/icon",null,null);i
2015-01-15 17:01:06 597
原创 77自定义EditText用来复制粘贴(包括图片)
实现的效果如下:要在这里能够粘贴图片,只能自定义了:创建一个类,继承自EditText:实现他的构造方法: private Context context; public PasteEditText(Context context) { super(context); this.context = contex
2015-01-15 15:56:18 1099
转载 76android ListView几个比较特别的属性
首先是stackFromBottom属性,设置该属性之后你做好的列表就会显示你列表的最下面,值为true和falseandroid:stackFromBottom="true" 第二是transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件trans
2015-01-15 15:21:36 523
转载 75android:scrollbarStyle属性及滚动条和分割线覆盖问题
android:scrollbarStyle可以定义滚动条的样式和位置,可选值有insideOverlay、insideInset、outsideOverlay、outsideInset四种。其中inside和outside分别表示是否在view的padding区域内,overlay和inset表示覆盖在view上或是插在view后面,所以四种值分别表示:insideOverlay:默认值
2015-01-15 15:13:43 654
原创 复用convertView的原理
ListView中的每一个Item显示都需要Adapter调用一次getView的方法,这个方法会传入一个convertView的参数,返回的View就是这个Item显示的View。如果当Item的数量足够大,再为每一个Item都创建一个View对象,必将占用很多内存,创建View对象(mInflater.inflate(R.layout.lv_item, null);从xml中生成View,
2015-01-15 13:52:11 1838
原创 模仿360卫士升级(增加主界面清理进程和流量统计的功能)
当用户点击圆是,清理内存:增加流量统计的功能:源码:上传了半天,没上传上,直接问我要吧,我的QQ:3067863573
2015-01-15 11:11:56 751
原创 74获取任务栈顶的Activity
代码如下:/** * * 该方法没看 * * @param context * @return */ public static String getTopActivity(Context context) { ActivityManager manager = (ActivityManager) context
2015-01-13 15:03:26 596
原创 73java生成UUID通用唯一识别码 (Universally Unique Identifier)
UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部份。UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需
2015-01-13 15:02:32 570
原创 72MainActivity中群聊的监听
整体的框架如下:实现GroupChangeListener接口,实现它的八个未实现的方法。第一个:onInvitationReceived:对方邀请你加入群聊。 @Override public void onInvitationReceived(String groupId, String groupName,
2015-01-13 14:53:37 738
原创 使用Volley框架异步加载图片+ListView图片加载错位解决
上面使用AsyncTask异步加载图片,这里使用Volley框架,图片的缓存不需要自己去处理。BitmapCache类:package com.dystudio.ustc.asyncimageloader_listview_volley;import android.graphics.Bitmap;import android.support.v4.util.LruCache;
2015-01-13 14:40:17 2105 3
Android组件设计思想
2015-01-05
Volley框架
2014-12-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人