- 浏览: 186365 次
- 性别:
- 来自: 广州
最新评论
-
Allen_J_Will:
...
python学习,第四天笔记 -
大头K:
qindongliang1922 写道你用的啥IDE工具楼主
...
python学习,第三天笔记 -
qindongliang1922:
你用的啥IDE工具楼主
python学习,第三天笔记 -
大头K:
hksfho 写道你好,怎樣顯不坐標?你说的是在地图上显示坐标 ...
基于百度地图实现的实时定位功能(含项目代码) -
hksfho:
你好,怎樣顯不坐標?
基于百度地图实现的实时定位功能(含项目代码)
文章列表
目前遇到问题:当我点击地图上的覆盖物时可以弹出提示框,但点击该覆盖物以外的地方时,最佳的用户体验是把去掉该提示框。但就是消失不了。
类似:
以前也做过类似效果,搬过来总是不行,经过1个小时的磨叽,终于找到原因了。
先看看以前做法(看清楚返回值):
弹出提示框: @Override
public boolean onTap(int index)
{
LogUtil.d("ck", "onTap1");
OverlayItem item = getItem(index);
createPopWindow(item ...
近段时间,由于项目需要,需要做资讯类APP,其中,要做一个排序列表,列表中每个item中的时间值需要与当前设备的时间作比较,得到一些比较人性化的时间提醒。先把效果图放上:
代码实现:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 时间工具类
* @author ck
* 2013年11月16日 23:36:40
*/
public class DateUtil
{
public static final String PA ...
使用百度地图有很长一段时间了,每次用的时候都是看官方例子,很少自己作总结,这样每次用的时候都会花时间去理解,今天就抽点时间总结一下:
1.废话不多说,先看效果:
2.基于百度地图版本:Android SDK v2.1.2
下方有官方Demo下载
3.项目中加入所需权限,demo中权限很多,我从中筛选出我们这个覆盖物所需要的权限,如果不放心的话,也可以直接copy demo中的所有权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-pe ...
xml中
android:maxLength="10"
java中
.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(10)});
1.一般分辨率大于WVGA屏幕精度小于等于MDPI的 可以认为是平板了
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double diagonalPixels = Math.sqrt(Math.pow(dm.widthPixels, 2) + Math.pow(dm.heightPixels, 2));
double physicalSize = diagonalPixels / (160 * dm.density);
boolean is ...
点击非EditText 则隐藏软键盘,手机有物理键则方便,但在平板每次隐藏软键盘都需要按左下角按钮,用户体验非常不好。
下面方法可以实现,用户在软键盘出现的时候,点击非EditText任一处则隐藏软键盘。
/** 点击空白隐藏软键盘 */
@Override
public boolean dispatchTouchEvent(MotionEvent ev)
{
if (ev.getAction() == MotionEvent.ACTION_DOWN)
{
// 获得当前得到焦点的View,一般情况下就是EditText(特殊情况就是轨迹求或者实体案件会 ...
1、核心意图:
简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出那一种产品类的实例。通常它根据传过来的参数的不同返回不同的类的实例。
2、简单工厂模式的构成:
–工厂为(Creator)角色:担任这个角色的是简单工厂模式的核心,含有与应用紧密相关的商业逻辑。工厂类的客户端的直接调用下创建产品对象,它往往由一个具体类实现。
–抽象产品(Product)角色:担任这个角色的类是简单工厂模式所创建的对象的父类,或它们共同拥有的接口。抽象产品角色可以用一个接口或者抽象类实现。
–具体产品(ConcreteProdu ...
- 2013-02-03 15:38
- 浏览 904
- 评论(0)
1、核心意图:
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让他们能够自动更新自己。
2、观察者模式的构成:
– 抽象主题角色(Observered):把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象
类或接口来实现。
– 抽象观察者角色(Observer):为所有具体的观察者定义一个接口,在得到主题的通知时更新自己。
– 具体主题角色(ConcreteObservered):在具体主题内部状态改变时,给 ...
- 2013-02-02 17:26
- 浏览 876
- 评论(0)
1、核心意图:
定义
装饰模式以对客户透明的方式动态的给一个对象附加上更多的功能。并且,客户端并不会觉得对象在装饰前和装饰后有什么不同。
作用
装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式可以在不创造更多子类的情况下,将对象的功能加以扩展。
2、装饰模式的构成:
– 抽象构件角色(Component):给出一个抽象接口,以规范准备接收附加责任的对象。
– 具体构件角色(Concrete Component):定义一个将要接收附加责任的类。
– 装饰角色(Decorator):持有一个构件(Compon ...
- 2013-01-31 08:07
- 浏览 1188
- 评论(0)
1、核心意图:
定义:
将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.
作用:
•使客户端调用简单,客户端可以一致的使用组合结构或其中单个对象,用户就不必关系自己处理的是单个对象还是整个组合结构,这就简化了客户端代码。
•更容易在组合体内加入对象部件. 客户端不必因为加入了新的对象部件而更改代码。
2、组合模式的构成:
Component(抽象构件接口)
– 为组合的对象声明接口
– 在某些情况下实现从此接口派生出的所有类共有的默认行为
– 定义一个接口可以访问及管理它的多个子部件
Leaf(叶部件)
– 在组合中表示叶节 ...
- 2013-01-29 07:48
- 浏览 859
- 评论(0)
1、核心意图:
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求
排队或记录请求日志,以及支持可撤消的操作。
2、command模式构成:
• 客户角色(Client):创建一个具体命令对象,并确定其接收者
• 命令角色(Command):声明一个给所有具体命令类的抽象接口。这是一个抽象角色,通常由一个接口 或抽象类实现
• 具体命令角色(ConcreteCommand):定义一个接收者和行为之间的弱耦合,实现execute方法,负责调用接收者的相应操作
• 请求者角色(Invoker):负责调用命令对象执行请求。
• 接收者角色(Receiver): ...
- 2013-01-28 22:37
- 浏览 914
- 评论(0)
1、核心意图:
将一个类的接口转换成客户希望的另外一个接口,从而使得原本由于接口不兼容而不能一起工作的类可以一起工作。
该模式的目标是通过一个代理(这里是Adapter),在原来的类(Adaptee)和客户(Client)之间进行协调,从而达到兼容的目的。其核心是解决一致性的问题。
2、适配器(Adapter)模式的构成
• 目标抽象角色(Target) :定义客户要用的特定领域的接口
• 适配器(Adapter) :调用另一个接口,作为一个转换器
• 适配器(Adaptee) :定义一个接口,Adapter需要接入
• 客户端(Client) :协同对象符合Adapter适配器
3 ...
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext())
{
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
直接看下图效果。
附源码。
cityName = (MyTextView) findViewById(R.id.city_content);
cityName.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);