background preloader

UI设计

Facebook Twitter

Android开发之 ListView控件_博客专题_51CTO技术博客. Design - Welcome. 编写Android触摸屏手势识别程序. 我们先来明确一些概念,首先,Android的事件处理机制是基于Listener(监听器)来实现的,比我们今天所说的触摸屏相关的事件,就是通 过onTouchListener。 其次,所有View的子类都可以通过setOnTouchListener()、 setOnKeyListener()等方法来添加对某一类事件的监听器。 第三,Listener一般会以Interface(接口)的方式来提供,其中 包含一个或多个abstract(抽象)方法,我们需要实现这些方法来完成onTouch()、onKey()等等的操作。 这样,当我们给某个view设 置了事件Listener,并实现了其中的抽象方法以后,程序便可以在特定的事件被dispatch到该view的时候,通过callbakc函数给予适 当的响应。 看一个简单的例子,就用最简单的TextView来说明(事实上和ADT中生成的skeleton没有什么区别)。

Public class GestureTest extends Activity implements OnTouchListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // init TextView TextView tv = (TextView) findViewById(R.id.page); // set OnTouchListener on TextView tv.setOnTouchListener(this); // show some text tv.setText(R.string.text); } @Override public boolean onTouch(View v, MotionEvent event) { Toast.makeText(this, "onTouch", Toast.LENGTH_SHORT).show(); return false; } 回到今天所要说的重点,当我们捕捉到Touch操作的时候,如何识别出用户的Gesture? 【编辑推荐】 最新翻译:Android 4.0设计规范 十大界面改变. 1. 导航栏 (详见模式PATTERNS>导航Navigation) 由之前的物理按键导航(返回、菜单、搜索、主页)变成了嵌入屏幕的虚拟按键(返回、主页、最近任务)。

左侧为早期有4个物理按键的手机,右侧为新版只有3个虚拟按钮的手机把菜单项和搜索项从导航栏去掉,把之前通过长按主页键才出现的最近任务直接展示在导航栏中。 最近任务的界面 把菜单收起的同时,在软件界面的操作栏上增加了“更多操作”(action overflow),如下图中的黄色圆点所示。 黄色圈部分为“更多操作”(action overflow)的位置和点击后内容的展示方式.

Android Web App官方文档翻译

[Android]ListView性能优化之视图缓存 - 农民伯伯. 前言 ListView是Android中最常用的控件,通过适配器来进行数据适配然后显示出来,而其性能是个很值得研究的话题。 本文与你一起探讨Google I/O提供的优化Adapter方案,欢迎大家交流。 正文 一、准备 1.1 了解关于Google IO大会关于Adapter的优化,参考以下文章: Android开发之ListView 适配器(Adapter)优化 Android开发——09Google I/O之让Android UI性能更高效(1) PDF下载:Google IO.pdf 1.2 准备测试代码: Activity private TestAdapter mAdapter; private String[] mArrData; private TextView mTV; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTV = (TextView) findViewById(R.id.tvShow); mArrData = new String[1000]; for (int i = 0; i < 1000; i++) { mArrData[i] = "Google IO Adapter" + i; } mAdapter = new TestAdapter(this, mArrData); ((ListView) findViewById(android.R.id.list)).setAdapter(mAdapter); } 代码说明:模拟一千条数据,TestAdapter继承自BaseAdapter,main.xml见文章末尾下载。

二、测试 测试方法:手动滑动ListView至position至50然后往回滑动,充分利用convertView不等于null的代码段。 2.1 方案一 按照Google I/O介绍的第二种方案,把item子元素分别改为4个和10个,这样效果更佳明显。 2.1.1 测试代码 2.1.2 测试结果(微秒除以1000,见代码) 按照Google I/O介绍的第三种方案,是把item子元素分别改为4个和10个。 2.2.1 测试代码 2.3 方案三 四、总结 结束. 点九:避免Andriod平台图片失真的图片形式. “点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png 智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失真变形。 我们都知道android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边角会模糊失真。 OK,在android平台下使用点九PNG技术,可以将图片横向和纵向同时进行拉伸,以实现在多分辨率下的完美显示效果。 【普通拉伸和点九拉伸效果对比】 对比很明显,使用点九后,仍能保留图像的渐变质感,和圆角的精细度。 从中我们也可以理解为什么叫“点九PNG”,其实相当于把一张png图分成了9个部分(九宫格),分别为4个角,4条边,以及一个中间区域,4个角是不做拉升的,所以还能一直保持圆角的清晰状态,而2条水 平边和垂直边分别只做水平和垂直拉伸,所以不会出现边会被拉粗的情况,只有中间用黑线指定的区域做拉伸。

二. 方法1:使用 “draw9patch”工具绘制,流程如下 1. 首先你需要给自己的电脑安装上java于系统的默认目录下。 然后使用andriod模拟器—android-sdk-windows,打开SDK/tools目录下的“draw9patch.bat”文件,出现载入窗口: 2.导入并编辑 将png图片拖拽到该窗口中 如下图,自动进入编辑界面。 预览右侧的视图发现,图片的边缘处于普通拉伸状态。 现在我们在图片边缘点击左键,绘制出黑线,即图片需要被拉伸的部分。 如果失误多绘的部分,可按住shift键的同时点击鼠标左键擦除)。 如图所见,三种拉伸结果均已完美显示,已实现我们想要的拉伸效果,假设这是一个有显示文字的窗体,那么文字显示的区域,程序也会控制在黑线对应范围。 以下这些图片,包括异性(非规则图形)图片,也可以通过点九PNG实现横纵向的自然拉伸。