andorid 开发笔记 -- 问题与解决

1. SQLiteDataBase 中 TimeStamp 转化为 Date 的问题:java.text.ParseException: Unparseable date: "Sun Jan 25 21:15:51 GMT+08:00 2

解决:读取数据时用 Cursor.GetString() 这样的方式读出来,导致转化时出现问题。

TimeStamp 其实是一个整型的数据,代码如下:

    private Date getDateFromCursor(Cursor cursor, String columnName) throws Exception {
        long date = cursor.getLong(cursor.getColumnIndex(columnName));
        return new Date(date);
    }

  另外注意 insert or update TimeStamp 字段时,插入值应该是 date().getTime() 转化为长整型

2. ImageView.GetWidth() 为0

  OnCreate() 中显示数据的时ImageView.GetWidth() 为0,有人说这是因为 OnCreate 中垃圾回收,本人觉得是因为这里还没有创建View,所有的Layout均没有正确初始化,可以选择在 onWindowFocusChanged() 计算,这里可以得到正常值。

  但是有一个问题,OnWindowFocusChanged() 有可能会经常调用,例如点击菜单等

  另外有一种更好的解决办法:

        ViewTreeObserver viewTreeObserver = gameFrame.getViewTreeObserver();
        if (viewTreeObserver.isAlive()) {
            viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
                @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
                @Override
                public void onGlobalLayout() {
                    gameFrame.getViewTreeObserver().removeOnGlobalLayoutListener(this);//移除响应,表示本监听只需要运行一次,获取需要的数据之后不再需要运行此过程
                    layoutX = gameFrame.getWidth();
                    layoutY = gameFrame.getHeight();
                    refreshView();
                }
            });
        }

3. 暂时正在滑动的图片,停在当前位置

很多人说用 clearAnimation(),事实证明这个不管用

倒是下面一句话给了我启示:

What you need to do is to calculate the amount of time into the current animation cycle, then create a new Animation with a 0 duration, fillEnabled, fillBefore and fillAfter set to true and for the amount of translation to be equal to the amount that the current animation would have been offsetting the View.

long currentTime = System.currentTimeMillis();//记录当前时间
long y = (-layoutY+ imageView.getHeight()) * (currentTime - backupTime) / 5000;  // 5000 为上文定义的动画时间,currentTime-backupTime 为动画运行时间
if(y < -layoutY)return;
imageView.clearAnimation();
imageView.offsetTopAndBottom((int)y);

  

本文原创, 转载请注明出处: http://www.cnblogs.com/EasyInvoice/p/4255456.html

时间: 2024-11-10 11:22:08

andorid 开发笔记 -- 问题与解决的相关文章

基于TINY4412的Andorid开发-------简单的LED灯控制【转】

本文转载自:http://www.cnblogs.com/pengdonglin137/p/3857724.html 基于TINY4412的Andorid开发-------简单的LED灯控制 阅读目录(Content) 一.编写驱动程序 二.编写代码测试驱动程序 三.编写HAL代码 四.编写Framework代码 五.编写JNI代码 六.编写App 参考资料: <Andriod系统源代码情景分析> <嵌入式Linux系统开发完全手册_基于4412_上册> 作者:彭东林 邮箱:[em

web前端开发笔记(2)

web前端开发笔记(1) 一.HTML标签书写有哪些规范? 页面编码. 文档声明. 关键字与描述. 行内元素不能包含块级元素. a标签不能嵌套a标签. 标签名和属性必须用小写字母书写,属性必须加引号,标签必须闭合,单标签页必须闭合. 页面中不要用 进行缩进,如需缩进,用css控制. html标签使用必须语义化. 要为img标签填写alt和title属性. 二.HTML静态页面出现中文乱码如何解决? 引入<meta charset="UTF-8"> 三.通常情况下块属性标签和

网页开发笔记【一】创建一个半透明的页面

近来正在温习网页制作,系列<网页开发笔记>记录本人在解决网页开发过程中遇到的问题以及解决方案. 半透明的页面在网页开发中使用的比较广泛,尤其在web app中,这种设计使用的地方更为广泛,本文记录这种半透明的页面的开发方法. 半透明页面常用于用户注册,这时候弹出一个页面能在不离开当前页面的情况下完成注册. 如百度的登陆界面所示. 我的处理方法如下: 首先在页面写一个div,这个div平时display设置为none,当需要的时候设置为display:block; 这个div(设其id为popu

IOS开发笔记-百度地图(第三方库)

最近做了百度地图,在导入SDK后遇到了一些问题 编译错误: linker command failed with exit code 1 (use -v to see invocation) 想了很多办法,查了很多资料,最后终于解决. 可能原因: 1. 有重复的.m文件,或者未导入 解决办法:有重复的删除即可 在工作左边导航栏Target-->Build Phases-->compile Sources中,第三库库的所有.m文件都添加到里面 2.Valid Architectures 的值 在

[开发笔记]-未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出【转载自:酷小孩】

原文地址:http://www.cnblogs.com/babycool/p/3199158.html 今天打算用VisualStudio2012做一个js效果页面测试的时候,打开VS2012新建项目,但是并没有像之前那样顺利的创建页面,而是弹出了一个错误窗口. 我的系统是win8专业版 64位 ,同时安装了VS2010和VS2012.然后我又试了一下VS2010,新建项目.新建网站等等,一切正常. 额,看来这个问题就是只和VS2012有关系了. 百度一番之后,找到了两篇文章: vs2012建立

DLNA&UPnP开发笔记(1)

DLNA&UPnP协议为多媒体内容共享提供了标准的行业规范,随着移动互联网的火热发展,我相信它在智能家居领域一定会有着非常大的发展.我准备写几篇文章,分享一下最近在DLNA&UPnP协议开发方面的经验,DLNA&UPnP的文档特别多,在此我希望用自己的语言来引导大家快速理解DLNA&UPnP协议. (1)DLNA&UPnP协议是干什么的 简单来说,DLNA协议定义了一种通用的行业规范,目的是让电子设备之间可以方便地共享照片.视频.音乐等多媒体内容.(这篇文章讲得不错

Linux及Arm-Linux程序开发笔记(零基础入门篇)

Linux及Arm-Linux程序开发笔记(零基础入门篇)  作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer/archive/2011/05/05/2037449.html 目录 一.Arm-Linux程序开发平台简要介绍... 3 1.1程序开发所需系统及开发语言... 3 1.2系统平台搭建方式... 4 二.Linux开发平台搭建... 5 2.1安装虚拟工作站... 5 2.2安装Linux虚拟

[Openwrt 项目开发笔记]:DDNS设置(五)

在上一节中,我主要讲述了如何在Openwrt上安装Samba服务器以及Ftp服务器.在本节中,我将介绍一下,一个比较使用的功能:DDNS.为远程物联网控制打下基础. 题外话:DDNS设置原本是极为简单的.可是由于我的路由所在现实环境的原因,以及我个人能力有限,一直无法达到我预期的目的,真是有点累觉不爱了. ok,言归正传,开始抛干货! 一.安装DDNS服务 opkg update opkg install ddns-scripts luci-app-ddns 二.注册一个动态域名 关于动态域名服

python运维开发笔记4

1.函数如何被调用,通过return返回值来调用 2.生成器和return区别 yield 生成器返回对象,可以迭代 可以执行 glob模块 类似shell中的正则匹配 shlex模块  Popen 将命令参数直接分词 cmd = "ps ax -o pid,ppid,cmd" shlex.split(cmd) ['ps','ax','-o','pid,ppid,cmd'] ['mysql','-u','root','-p123','-e','show processlist'] p