Posts tagged: android layout

中国水系Android第一个版本

写这个例子的目的是供同事和开发Android的朋友学习借鉴。 这个版本不是凭空冒出来的,就像爱因斯坦做手工的故事(不知道的见这里)一样,还有更丑的“小凳子”,它们是: 简单使用SimpleCursorAdapter 在视图显示中使用Style 在视图显示中使用Theme android 1.6下使用Loader示例 参考它们可以了解版本的演进过程。可能降低学习曲线。 这个版本的首页: 点击条目,会弹出带图片的详细信息界面: 这里的图片是从维基百科直接下载的,并会缓存在本地。 另外,就是对横竖屏使用了不同的布局:    发送文章为PDF   

Android布局优化的要点

以下翻译自《Professional Android 2 Application Development》第四章Create user interfaces的Optimizing Layouts部分。 通过inflate在Activity中布局是个有性能消耗的过程。每增加一个嵌套的布局和视图都会对应用的性能造成很大的影响。 总之,好的实践是尽量保持布局尽可能简单,尤其是要避免嵌套inflate操作整个新的布局,这是为更新已经存在布局的小变化。 以下几点是包含在Android最佳实践指导原则里的,当然并不绝对: 避免不必要的嵌套:不要把一个布局放置在其他布局里,除非是必要的。 避免使用太多视图:在一个布局中每增加一个新的视图,都会在inflate操作时耗时和消耗资源。任何时候都不要在一个布局中包含超过80个视图,否则,消耗在inflate操作上的时间会很大。 避免深度嵌套:布局可以任意嵌套,这极易于创建复杂和深度嵌套的布局层次。如果没有硬性限制,将嵌套限制在10层以下是好的实践。 优化布局层次,比如减少没效率的或者不必要的嵌套布局,是十分重要的。 Android SDK包含了layoutopt,一个命令行工具,来辅助这个优化工作。运行该命令,参数是布局文件或者布局文件的目录,将分析并给出改善的建议。    发送文章为PDF   

星期二 三月 15th, 2011 in , , , , | No Comments »

像素点和设备独立像素点的区别

按照获取android屏幕大小的示例在Motorola Milestone测试到的结果是:569×320。这是因为使用的单位是dip,即device independent pixels。这里要提到另外一个概念,density,直译是密度,在显示领域里表示每平方英寸的像素点密度,每个像素点可以近似看作屏幕上的一个发光点,点的密度越大,则显示效果越清晰,在单位面积下显示内容越多。 Android设备的特点是屏幕尺寸很多,因此为了显示能尽量和设备无关,提出了dip,参照的density是160。因此,可以用如下公式换算: dip=px * 160/240 可出Milestone的实际像素点为: 长:569×3/2=853.5 宽:320×3/2=480 这里要注意,显示屏不是模拟设备,是数字设备,因此不可能出现半个像素点的情况,肯定是px换算为dip产生的误差,因此应该是854px。    发送文章为PDF   

星期二 十二月 14th, 2010 in , , , , | No Comments »

自定义切换视图第二版

在这个版本没有对切换视图做什么改动,而是增加了ios中PageControl那样的功能。效果如下: 这样,虽然还没有动画提示,已经可以让用户知道自己处在什么情况下了。 首先,还是从布局上说起: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical" android:layout_width="fill_parent"     android:layout_height="fill_parent">     <FrameLayout android:orientation="vertical"         android:layout_width="fill_parent" android:layout_height="fill_parent"         android:id="@+id/viewSwitcher">     </FrameLayout>     <LinearLayout android:id="@+id/pageControl"         android:layout_width="fill_parent" android:layout_height="40px"         android:background="#8f00000f" android:layout_alignParentBottom="true"         android:gravity="center" /> </RelativeLayout>    发送文章为PDF   

星期五 十二月 10th, 2010 in , , , , | No Comments »

简单定制VideoView

在在播放视频前增加等待画面和进度提示中实现了简单的播放器,最近将逐渐演进,成为名副其实的定制版本播放器。本文做一个简单的定制,实际还没有动VedioView类,只是在布局上为播放器增加一些外围的信息提示。算是定制的热身运动。 效果: 通过相对布局,在加载的时候提示loading字样的文字,在加载到视频后,提示片名,当前时间,片子的时长和当前播放的时长。 日志引用编写简单自定义VideoView    发送文章为PDF   

星期二 八月 31st, 2010 in , , , , | No Comments »

在播放视频前增加等待画面和进度提示

Android可以通过VideoView很方便的实现在线视频部分,可参见调用android api播放视频,不过该例子中的在线视频已经无法访问了。可使用这个源代码(实现了最简单的在线播放): http://easymorse.googlecode.com/svn/tags/videoplayer-0.1/ 在线播放,可能需要等待片刻才能开始,或者有些客户需要在用户观看视频前看一下广告。比如: 然后: 日志引用简单定制VideoView    发送文章为PDF   

加ProgressBar以及实现延时操作

对用GridView实现Gallery的效果再做一个处理,假设图片加载是通过服务器端的,那么在没有加载完毕的时候界面上要有个ProgressBar显示,当加载完毕后,取消ProgressBar。 这里是示意性的代码,图片是一上来就加载了,实际情况应该是只看到ProgressBar。这里需要使用FrameLayout,它可以让多个视图重叠在一起。    发送文章为PDF   

用GridView实现Gallery的效果

在实现横向的类似Gallery的效果中做了实现Gallery的尝试,但是效果不好。使用的是TableLayout,出现了横向拖动图片的时候,因为有倾斜(轻微的竖向拖动),会整个列表竖向滚动。其实这个问题可以将TableRow中条目设置为clickable来解决。但是效果依然不好。 这次尝试通过GridView来解决问题,效果很好,见截图: 基本思路是: 日志引用加ProgressBar以及实现延时操作    发送文章为PDF   

星期二 八月 17th, 2010 in , , , , | 3 Comments »

在ListView中实现多种视条目

在imdb中有这样的界面: 画红框的部分其实都是ListView中的条目,不过它们是不同的View。    发送文章为PDF   

星期五 八月 13th, 2010 in , , , , | 1 Comment »

编写Android自定义按钮

写了个简单的android编写自定义效果的按钮,现在还不完整。不过效果出来了。见: 用手指按压按钮的效果: 日志引用自定义视图中使用自定义变量android界面无标题栏和全屏效果的实现方式    发送文章为PDF   

星期三 八月 11th, 2010 in , , , , | 1 Comment »