- 浏览: 150658 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
louisliao:
你好请问你有遇到 repo upload 每次都要求输入用户名 ...
碰到的Git/Repo问题及其解决方法 -
viptmd:
谢谢 lz的解释。。受教了,正在搞dmc
开篇:Java Net & DLNA -
chxiaowu:
楼主,可不可以共享代码啊。 看代码才能理解啊
ActiveObject模式的一个java实现 -
aigyoo:
很有兴趣就是不知道怎么做
jUpload字符集设置 -
enlangs:
学习了。。
开篇:Java Net & DLNA
以下所涉及的所有文章都被墙了。。
Android2.2以后的SDK自带的工具HierachyViewer提供了一个新的功能:Capture PSD。也就是说,它可以把设备当前的ui生成成一个photoshop文件。这个功能非常有用,它可以帮助你debug ui。。
需要注意的是,当你的手机烧制的是USER版本时,HierachyViewer不能工作,这是出于安全的原因。不过它可以在模拟器工作。
ScrollView是Android中最常用的widget之一,并且同时也是非常简单易用的wdiget之一。当要在屏幕上显示很多内容时,把它们全部丢进一个ScrollView就搞定了。甚至,ScrollView只能接收一个子节点,如果添加多个就会出错。由于它很简单,所以在使用的时候就需要一点小技巧。
有的时候需要实现一个类似版权信息的页面,只有用户滚动到最底部,才能看到确定和取消按钮。假如,版权信息用一个TextView来展现,而这个TextView时长时短。这时可以如下实现:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scroller" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fillViewport="true" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="6dip" android:paddingRight="6dip" android:paddingTop="6dip" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Welcome to My Application" /> <View android:layout_width="fill_parent" android:layout_height="1dip" android:background="#ff106510" android:layout_marginLeft="6dip" android:layout_marginRight="6dip" android:layout_marginTop="6dip" android:layout_marginBottom="12dip" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" android:paddingLeft="6dip" android:paddingRight="6dip" android:paddingBottom="6dip" android:text="@string/hello" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@android:drawable/bottom_bar" android:gravity="center_vertical"> <Button android:layout_width="0dip" android:layout_weight="1.0" android:layout_height="wrap_content" android:text="Accept" /> <Button android:layout_width="0dip" android:layout_weight="1.0" android:layout_height="wrap_content" android:text="Refuse" /> </LinearLayout> </LinearLayout> </ScrollView>
需要注意的两点是:1.TextView的android:layout_weight设置未1.0,这样做会使它比ScrollView短时使用可用的空白区域。并且这个只有android:fillViewport="true"时才生效。
3.Gingerbread and 32 bits windows
Roman Guy和Chet Haase在Devoxx做了一次演讲,他们的ppt其中的一页,在很多Android开发网站上引起广泛兴趣:
因此他需要说点什么:
* 现在(指在Gingerbread中,下同)应用程序可以使用32bit的window(即便是透明window,那也是32bit的)
* 现在应用程序可以强制bitmap以32bit加载
* 现在应用程序阻止banding(他的下一篇文章会介绍)
* OpenGL的window依然保持了16bit,因为兼容性问题。一些游戏应当不需要假定这个格式在GB中不存在。我们不希望破坏应用程序。(原文:OpenGL windows remain 16 bits in Gingerbread for compatibility reasons. Some games assume this format and should not. But they do, and we don’t like breaking applications.)
* 现在OpenGL应用程序也可以使用32bit window了。
总结起来,Gingerbread的升级并没有特意为系统添加32bit图形的支持,系统本来就一直支持。Gingerbread只是简单地在更多的情况中把32bit作为默认方式。
文后有一些讨论:
A:UI这样改变了之后,系统在绘制图形时是不是更快了呢,或者还是如果不使用32bit图形,设备性能就会降一截呢?
答:透明的bitmap以前已经是32bit的了,并且在作blend(图片的一种处理方式)操作是要转换成16bit的,所以在这种情形下16bit的会快一点。32bit不透明bitmap会比16bit的绘制更快,因为内存拷贝时更方便。如果你的应用因为内存原因而对不透明图片使用16bit,我也觉得这不会是问题。当然了,如果你强制你的bitmap以16bit加载,那么现在会有一个自动的16bit转32bit的过程。总地来说这和之前没有太大不同,只是app会消耗更多内存。
B:那这不是说Gb只能运行在高端机器上吗?
答:这不意味Gb只能在高端机上运行。因为这一点也没有改变硬件需求。再者,那些在API Level 8上或者更早的版本开发的app,它们在Gb上运行同样会以32bit加载bitmap,而不是16bit,除非你需要这么做。
4. Bitmap quality, banding and dithering
这篇文章主要介绍了,选用哪种像素规格的bitmap会有更好的显示效果。全文从头至尾挨个论证了几种解决图片显示效果的方案,过程我不详述了,因为图像处理着一块我不熟悉。
但是下面两张图可以大致了解本文的意思:
1.
我们可以很明显的看到,在32bit和16bit的window中显示同一种像素规格(ARGB_8888)的bitmap时不同效果。前者效果更好。
2.
这张图展示的是多种像素规格bitmap在不同bit的window中显示的效率.
结论:这个简单的性能测试非常清晰的展示了使用兼容的格式是绘制bitmap最有效率的途径,例如,32bit bitmap在32 bit window上绘制或者16bit或565格式的bitmap在16bit window上绘制 效果都会很好。因为这个原因,你应该一直检查你的bitmap和window的格式,并且保证他们相互兼容。你可以在creating an empty bitmap或者decoding a resource or stream的时候选择bitmap的格式。你可以通过调用Bitmap.getConfig()来查看当前存在的bitmap的格式。你可以在onCreate()方法中通过getWindow().getAttributes().format来查询当前window的格式。你同样可以参考本篇文章的源代码来查看如何选择一个特定格式。
btw:在下一篇文章中我会介绍一下dither和banding这两个概念。
发表评论
-
Android客户端数据采集工具包设计
2012-03-06 23:19 7494最近在做一款采集Android应用数据的工具包,类似友盟、fl ... -
[Android游戏开发]基于libgdx的一个简单游戏demo
2012-01-10 14:33 5126最近在利用业余时间自学游戏开发,在看《Begining And ... -
项目开发总结
2012-01-05 15:52 1997最近做了一个项目,项 ... -
Something about vm gc
2011-10-20 11:06 964It works something like this ... -
图像处理的Dither和Banding
2011-10-12 17:21 13157由于前面的文章涉及到了这两个概念,而我又对图像处理一窍不通,所 ... -
Roman Guy的Android Trick系列文章笔记(二)
2011-10-10 17:43 17695.Speed up your Android UI ... -
Roman Guy的Android Trick系列文章笔记
2011-09-21 15:02 1764Roman Guy是Android Framework ... -
Android开发闲言碎语
2011-08-29 10:52 10841. Android,任何app的生命都是短暂的,所以开发ap ... -
Android开发中的一些经验总结
2011-05-11 10:55 5055计划用这篇文章把目前我在Android领域的一些看到的、用到的 ... -
Android Contacts知识学习
2011-05-10 16:17 0最近接受Contacts这一块的工作,在这里把看到的想到的一些 ... -
ActiveObject模式的一个java实现
2011-04-05 20:19 22821. 什么是ActiveObject并发模型? 引用This ... -
命令行方式下工作
2011-03-28 11:34 1072看到徐宥的一篇blog:htt ... -
Multithreading For Performance
2011-03-17 16:48 0... However, a ListView-specifi ... -
Saving data safely
2011-03-16 22:45 1139我们知道,在Android平台中,保存数据有3种方式:loca ... -
一个代码复用实例
2011-03-14 09:43 1149大概看了一下这篇文章: 新浪微博布局学习——妙用TabHost ... -
Source share: SharedPreferencesCompat.java
2011-03-10 09:39 1761Firstly look at the code: /** ... -
New Gingerbread API: StrictMode阅读笔记
2011-03-09 17:14 1168原文:New Gingerbread API: StrictM ... -
Android Memory Leaks
2011-03-08 23:20 1927前一阵子,有一个bug是关于monkey测试到的memory ... -
AndroidUI学习
2011-02-23 22:43 1933没搞过swing,也没丰富经验的j2me ui,ios的ui也 ... -
Android消息处理框架:Looper,Handler,MessageQueue ...
2011-02-23 22:34 2928看过冷冰的Android核心分析第十一篇:Android GW ...
相关推荐
在这个压缩包中,我们看到一系列以 "trick" 开头命名的.gif 图像,比如 "trickb12.gif" 和 "trick3d.gif"。这些可能是展示字体效果的示例图,展示了字体在不同样式或应用场景下的视觉表现,例如薄体("thin")、蓝图...
Hattrick球场上座率概算 Hattrick球场上座率概算
### 重修 Slope Trick 技术解析 #### 一、引言 Slope Trick,作为一项优化动态规划(DP)问题的技术手段,在算法竞赛领域里占有重要地位。该技术的核心在于利用函数斜率的变化来简化计算过程,尤其是在面对那些代价...
Python-trick,上传的事pdf文档
在ARP_trick.tar.gz这个压缩包中,我们可以预期包含有关如何执行和防御ARP欺骗的相关资料。可能包括了以下内容: 1. **ARP协议原理**:首先,理解ARP的工作机制至关重要。当主机需要发送数据到某个IP地址时,它会...
在机器学习中,核技巧(Kernel Trick)是一种非常重要的技术,它允许我们在高维特征空间中有效地进行线性学习算法的操作,而无需显式地计算出高维空间的数据表示。核技巧在诸如支持向量机(SVM)等算法中发挥了重要...
"Web 安全学习笔记" Web 安全学习笔记是关于网络安全的综合性学习笔记,涵盖了 Web 安全的基础知识、常见威胁、防御策略等方面的内容。下面将详细介绍该笔记中所涉及的知识点: 一、Web 安全基础 * Web 安全定义...
### 神经网络训练Trick详解 #### 引言 神经网络训练是深度学习领域的一个核心环节,其效果的好坏直接影响着模型的性能。在实际应用中,开发者经常会遇到模型训练不佳的情况,这时就需要一系列的技巧(Tricks)来...
Hat Trick是Unity官方商店提供的5.5.0版本以上的一款游戏Demo。
在Android开发中,"list_sticky_scroll_trick"是一个常见的UI设计技巧,它涉及到ListView的优化和用户体验提升。这个效果通常被称作“吸顶”或者“固定头部”效果,即当用户滚动列表时,某些特定的视图(如标题或...
db_trick.sql
Linux Shell技巧是Linux系统操作中的重要组成部分,它是一种命令行接口,允许用户通过文本命令与操作系统进行交互。Shell脚本可以极大地提高效率,自动化日常任务,并且是系统管理员的得力工具。...
Hattrick Ranking,一款专为在线游戏Hattrick设计的CHPP(Hattrick个人程序插件)批准的应用程序,为玩家提供了一个独特的功能,即创建自定义的排名系统,以更深入地对比和分析Hattrick中的各支球队。这款开源软件的...
由NASA约翰逊航天中心开发的Trick仿真环境是一个功能强大的仿真开发框架,使用户能够为航天器开发的所有阶段构建应用程序。 特里克(Trick)加快了仿真的创建过程,以进行早期飞行器设计,性能评估,飞行软件开发,...
### 三、其他相关操作 #### 3.1 Hat-trick与Hattrick adb设备管理 - `Hattrick adb devices`: 显示连接的设备列表。 - `adb push a.out /data`: 将本地文件`a.out`推送到设备的`/data`目录下。 - `adb shell ash`: ...
zoj 2247 Magic Trick.md
VDR-Hattrick是一款专为视频磁盘录像机(Video Disk Recorder, VDR)设计的开源插件。这款插件的出现,旨在为VDR用户提供一个独特的体验,即在观看电视节目的同时,能够实时查看在线足球游戏“Hattrick”的比赛情况...
### 机器学习个人笔记完整版v5 知识点概览 #### 一、课程概述与背景 **课程目标:** - **理解机器学习的概念:** 探讨计算机如何模仿人类学习行为,获取新知识或技能,从而提高自身性能。 - **掌握核心技能:** ...
为了处理非线性可分的情况,SVM引入了核技巧(kernel trick),使得原始数据能够在高维空间中变得线性可分。 **决策树**可以通过构建一棵树形结构来实现多分类问题。每一内部节点表示一个属性上的测试,每个分支代表...