文章分类 -  Android_View

摘要:Android开发当中,经常会碰到图片的异步加载问题(也叫延时加载,英文叫 Lazyload)。图片的读取工作是个比较耗时的工作,如果还是从互联网读取图片资源就更加耗时。如果在主线程里处理的时间过长,就会引发著名的应用程序无响应的系统提示(ANR:Application Not Responding)。本文通过一个名为Demo4FileManager的项目实例来讲解如何实现图片的异步加载功能。该应用的主要功能是列出SD卡下的所有目录和图片文件,用户也可以在此之上修改为读取网络图片的功能。异步加载的实现是通过AsyncTask类来实现的,首先通过一个叫FileLoadTask的类来加载当前目录下 阅读全文
posted @ 2011-11-24 15:23 Glan 阅读(123) 评论(0) 推荐(0)
摘要:int[] location = new int[2] ;view.getLocationInWindow(location); //获取在当前窗口内的绝对坐标view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标location [0]--->x坐标,location [1]--->y坐标如果在Activity的OnCreate()事件输出那些参数,是全为0,要等UI控件都加载完了才能获取到这些。 private ViewFlipper flipper; @Override public void onCreate(Bundle s. 阅读全文
posted @ 2011-11-24 15:22 Glan 阅读(157) 评论(0) 推荐(0)
摘要:在开发手机的应用程序时,除了底层对API的掌握之外,屏幕分辨率的概念也是相当的重要的,而且在当今,各家手机生产厂商的手机屏幕都大同小异(不过,也就几种),user UI接口呈现及布局自然也各异! Android可设置为随着窗口大小调整缩放比例,但即便如此,手机程序设计人员还是必须知道手机屏幕的边界,以避免缩放导致的布局变形等问题。 下面介绍的DisplayMetrics类的对象记录了一些常用的信息,包含了显示信息,大小,维度,字体等;顺便说下,DisplayMetrics对 象里的widthPixel及heightPixels字段为整数类型,在以下的程序中,并没有对字符串类型做转换,所以s.. 阅读全文
posted @ 2011-11-24 15:21 Glan 阅读(151) 评论(0) 推荐(0)
摘要:由于完全改了status bar,建议先做几张png图片,加到Frameworks/base/core/res/res/drawable下。最好做一张背景图,替换 statusbar_background.png另外我又加了几张icon,分别是home menu和back的正常和按下状态。这些图片为:stat_home.pngstat_home_pressed.pngstat_back.pngstat_back_pressed.pngstat_menu.pngstat_menu_pressed.png修改步骤为:一. 修改xml界面1. 增加图标当然,更改整个status bar避免不要要对源 阅读全文
posted @ 2011-11-24 15:20 Glan 阅读(339) 评论(0) 推荐(0)
摘要:Best practices for Screen Independence1. Prefer wrap_content, fill_parent and the dip unit to absolute pixelsWhen defining the layout_width and layout_height of views in an XML layout file, using wrap_content, fill_parent or the dip will guarantee that the view is given an appropriate size on the cu 阅读全文
posted @ 2011-11-24 15:18 Glan 阅读(260) 评论(0) 推荐(0)
摘要:屏是LANDSCAPE的,要让它默认显示为PORTRAIT.1.kernel里要旋转FrameBuffer.启动参数里加入fbcon=rotate:1 (0:正常屏; 1:顺时钟转90度; 2:转180度; 3:顺时钟转270度;)最后生成的autoconf.h里有类似项:#define CONFIG_CMDLINE "console=ttySAC0,115200 fbcon=rotate:1"此项的解析在$(kernel)/drivers/video/console/fbcon.cstatic int __init fb_console_setup(char *this_ 阅读全文
posted @ 2011-11-24 15:18 Glan 阅读(337) 评论(0) 推荐(0)
摘要:一:不同的layout Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢? 其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。 二:hdpi、mdpi、ldpi 在之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨. 阅读全文
posted @ 2011-11-24 15:17 Glan 阅读(455) 评论(0) 推荐(0)
摘要:案例:通过service向远程服务器发送请求,根据服务器返回的结果动态更新主程序UI界面,主程序可实时关闭或重启服务。注册BroadcastReceiver在主程序activity中注册一个BroadcastReceiver,用于接收Service发布的广播。@OverrideprotectedvoidonStart(){//重写onStart方法 dataReceiver=newDataReceiver(); IntentFilterfilter=newIntentFilter();//创建IntentFilter对象 filter.addAction("com.justel.se 阅读全文
posted @ 2011-11-24 15:16 Glan 阅读(161) 评论(0) 推荐(0)
摘要:ListView.getCount()(实际上是 AdapterView.getCount()) 返回的是其 Adapter.getCount() 返回的值。也就是“所包含的 Item 总个数”。 ListView.getChildCount()(ViewGroup.getChildCount) 返回的是显示层面上的“所包含的子 View 个数”。 二者有什么不同?当 ListView 中的 Item 比较少无需滚动即可全部显示时,二者是等价的;当 Item 个数较多需要滚动才能浏览全部的话, getChildCount() < getCount() 其中 getChildCount() 阅读全文
posted @ 2011-11-24 15:14 Glan 阅读(102) 评论(0) 推荐(1)
摘要:1. 使用ActivityGroup时,如何保存Activity状态? 其实很简单, 只要像下面这样来加载Activity即可。 view plainprint? getLocalActivityManager().startActivity("XXX", new Intent(this, XXX.class)).getDecorView() 那么又如何让ActivityGroup不保存子Activity的状态呢? 即切换时,直接销毁。 其实只要加一个Flag: Intent.FLAG_ACTIVITY_CLEAR_TOP ,如下: view plainprint? get 阅读全文
posted @ 2011-11-24 15:10 Glan 阅读(108) 评论(0) 推荐(0)
摘要:我们知道在Android中只允许一个Activity活动在当前界面,在这里我们就不能同时让多个Activity同时存活在ActivityGroup中,当我们加载一个Activity到ActivityGroup中来的时候我们要做的就是移除其他的存在于当前 ActivityGroup中的view,然后加载需要的Activity到当前的ActivityGroup中来。 LinearLayout container=(LinearLayout)((ActivityGroup)getParent()).getWindow().findViewById(R.id.body);//注意这里,还是获取gro. 阅读全文
posted @ 2011-11-24 15:10 Glan 阅读(347) 评论(0) 推荐(0)
摘要:android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况。对于这种情况,一般的方法就是耗时操作用线程来实现。下面列三种获取url图片的方法: 1.直接获取:(容易:ANR,不建议) mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;Drawable drawable = loadImageFromNetwork(IMAGE_URL);mImageView.setImageDrawable(drawable) 阅读全文
posted @ 2011-11-24 15:09 Glan 阅读(130) 评论(0) 推荐(0)
摘要:很多客户端软件和浏览器软件都喜欢用Tab分页标签来搭建界面框架。读者也许会马上想到使用TabHost 与 TabActivity的组合,其实最常用的不是它们,而是由GridView与ActivityGroup的组合。每当用户在GridView选中一项,ActivityGroup就把该项对应的Activity的Window作为View添加到ActivityGroup所指定的容器(LinearLayout)中。接下来贴出本例运行的效果图:ImageAdapter是本实例的关键之一,它继承于BaseAdapter,并加入一些自定义的方法。ImageAdapter的源码如下:packagecom.Ac 阅读全文
posted @ 2011-11-24 15:09 Glan 阅读(139) 评论(0) 推荐(0)
摘要:见:http://www.cnblogs.com/playing/archive/2011/03/18/1988182.htmlEditText:通常用于显示文字,但有时候也需要在文字中夹杂一些图片,比如QQ中就可以使用表情图片,又比如需要的文字高亮显示等等,如何在android中也做到这样呢?记得android中有个android.text包,这里提供了对文本的强大的处理功能。将需要的文字高亮显示:加下划线:组合运用:案例:带有\n换行符的字符串都可以用此方法显示2种颜色 阅读全文
posted @ 2011-11-24 15:08 Glan 阅读(104) 评论(0) 推荐(0)
摘要:现在的用户对APP的外观看得很重要,如果APP内所有元件都用Android默认样式写,估计下面评论里就有一堆在骂UI丑的。今天学习自定义Button按钮样式。Button样式修改的是Button的背景(Background)属性。首先写一个定义Button样式的XML文件:新建Android XML文件,类型选Drawable,根结点选selector,文件名就buton_style吧。程序自动给我们刚刚建的文件里加了selector结点,我们只需要在selector结点里写上三种状态时显示的背景图片(按下、获取焦点,正常)。代码如下:Xml代码<?xml version="1 阅读全文
posted @ 2011-11-24 15:07 Glan 阅读(770) 评论(0) 推荐(0)
摘要:Android中想要在TextView显示彩虹字实现很简单,就是对颜色进行线性的渐变。用到的类是LinearGradient,直接贴代码:1.类TextViewTest.java继承TextViewimport android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.LinearGradient;import android.graphics.Paint;import android.graphics.Paint.Style;impo 阅读全文
posted @ 2011-11-24 15:07 Glan 阅读(375) 评论(0) 推荐(0)
摘要:在联网获取数据时,用一个进度条提示用户正在加载数据,以下讲一下我是如何实现这种效果的。 由于Android的界面更新只能通过自己的UI线程进行操作,所以我们需要用到Handler在进行更新界面的操作。 1、声明变量 private Handler handler = new Handler(); private ProgressDialog progressDialog = null; 2、在开始进行网络连接时显示进度条对话框 progressDialog = ProgressDialog.show(MyActivity.this, "请稍等...", "获取数据 阅读全文
posted @ 2011-11-24 15:05 Glan 阅读(251) 评论(0) 推荐(0)
摘要:原文地址:AndroidUI布局作者:尼采的鹅毛笔android.view.View是widget基类android.view.Viewgroup 是布局的基类菜单 Menu、MenuItem文本 TextView输入框 EditText输入法 InputMethod活动方法 MovementMethod按钮 Button单选按钮 RadioButton复选框 Checkbox滚动视图ScrollViewListView元件名稱説明FrameLayout 單一物件的容器AbsoluteLayout 以絕對座標排版的容器LinearLayout 線性(水平或垂直) 排版的容器RelativeLa 阅读全文
posted @ 2011-11-24 15:04 Glan 阅读(481) 评论(0) 推荐(0)
摘要:我们先来看看效果图,这样大家看了以后,就会做的它是怎么实现的。效果是什么样的。2011-4-15 15:07:34 上传下载附件 (19.58 KB) 我们在来看看代码:public class SlipTabAct extends Activity{final int SUM = 3;TextView[] mTVs;ImageView[] mBGs;int mPreClickID = 0;int mCurClickID = 0;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInst.. 阅读全文
posted @ 2011-11-24 15:01 Glan 阅读(235) 评论(0) 推荐(0)
摘要:(转自friend chon的blog:http://www.cnblogs.com/chon/archive/2011/06/28/2092317.html)Why ListView?ListView 如果仅仅出于功能上的需求ListView可能没有存在的必要,ListView能作的事情基本上ScrollView也能胜任。ListView存在的最根本的原因在于它的高效(如何实现的?).ListView通过对象的复用从而减少内存的消耗,也减少了对象的创建从而也减少的cpu的消耗(在Androidk中创建View对象经常伴随着解析xml)。ListView的本质是一张bitmap(当然所有的控件 阅读全文
posted @ 2011-11-24 14:58 Glan 阅读(202) 评论(0) 推荐(0)