随笔分类 - android提高篇
摘要:Android原生控件只有横向进度条一种,而且没法变换样式,比如原生rom的样子很丑是吧,当伟大的产品设计要求更换前背景,甚至纵向,甚至圆弧状的,咋办,比如ok,我们开始吧:一)变换前背景先来看看progressbar的属性:1.根据style="?android:attr/progressBarStyleHorizontal",我们找到源码中的style.xml1.看到@android:drawable/progress_horizontal木有,继续发掘源码,找到drawable下面的progress_horizontal.xml,这就是我们今天的主角了:1.2.3. 
        阅读全文
            
摘要:最近迷上进度条,使用进度条可以增强用户体验,让用户心里有个底,再无奈的等待中体会loading的乐趣。记得以前优乐美的官网,进入主页加载资源,显示给用户看的就是,炫彩背景下,一个杯子里的奶茶随着加载进度慢慢加上来,这对于浏览网站的人来讲,等于一种享受,并不是难熬等待的时间,在等待的时间的时候,她们看到确实另一番景象而不是单纯的进度条。百度手机浏览器的做法又不一样,用户打开一个网页的时候,在后台请求资源并渲染,前台界面就是产品的宣传,几张宣传图相互切换,大部分PC软件的安装过程也是如此,在用户等待的时候,向用户宣传自己,让眼睛不会过度疲劳和产生厌倦感。好了,话不多少,今天我们看看手机QQ空间,点
        阅读全文
            
摘要:介绍几个工作开发中封装的好用的android自定义控件首先看效果图,看下这两个界面,第一个中用到了一个自定义的FlowRadioGroup,支持复合子控件,自定义布局;第二个界面中看到了输入的数字 自动4位分割了吧;也用到了自定义的DivisionEditText控件。下面直接看源码FlowRadioGroup了; 1 /* 2 * Copyright (C) 2006 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License");
        阅读全文
            
摘要:先看效果图吧,继上一篇《android自定义viewgroup实现等分格子布局》中实现的布局效果,这里稍微有些区别,每个格子的高度不规则,就是传说的瀑布流布局,一般实现这种效果,要么用第三方控件,如果不是加载图片还可以直接写在xml中实现,不过代码会很多的;下面我重写了viewgroup,实现 onMeasure,onLayout方法,动态设置每个布局的高度,这里有一个小的技巧,一般我们自定义的控件,嵌套在scrollview中显示不 全,这个问题也纠结我一小会,不过当你打开scrollview的源码,你会发现有一个地方,同时可以理解scrollview中嵌套 viewpager,gridvi
        阅读全文
            
摘要:先上效果图:实现这样的效果:一般的思路就是,直接写布局文件,用LinearLayout 嵌套多层子LinearLayout,然后根据权重layout_weight可以达到上面的效果还有就是利用gridview了,但是这里的需求就是不能上下滑动,使用gridview的时候还要计算布局的高度,否则内容超出下滑;开始我是用的第一种,直接在布局文件实现了,但是后来发现代码太多太恶心哦,所以我继承viewGroup,重写两个关键的方法:onLayout(),onMeasure()我的大致思路:1.计算当前视图宽度和高度,然后根据边距,算出每个布局的item需要分配的多少宽度和高度:2.支持adapter
        阅读全文
            
摘要:viewgroup简单说就是可以装view的view.今天遇到一个问题,就是需要一个可以自动根据一行中view的宽度自动换行的布局,网上 找了下,没有相关的例子,但是找到了思路:自定义一个viewgroup,然后在onlayout文件里面自动检测view的右边缘的横坐标值,和你的 view的parent view的况度判断是否换行显示view就可以了。因为代码比较简单,就不多说了: 1 public class MyViewGroup extends ViewGroup { 2 private final static String TAG = "MyViewGroup";
        阅读全文
            
摘要:今天遇到一个问题:android中ListView点击和里边button点击不能同时生效问题解决。原因是:listView 在开始绘制的时候,系统首先调用getCount()函数,根据他的返回值得到listView的长度(这也是为什么在开始的第一张图特别的标出列表长 度),然后根据这个长度,调用getView()逐一绘制每一行。如果你的getCount()返回值是0的话,列表将不显示同样return 1,就只显示一行。 系统显示列表时,首先实例化一个适配器(这里将实例化自定义的适配器)。当手动完成适配时,必须 手动映射数据,这需要重写getView()方法。系统在绘制列表的每一行的时候将调用.
        阅读全文
            
摘要:在Android中, 每个应用程序都可以有自己的进程. 在写UI应用的时候, 经常要用到Service. 在不同的进程中, 怎样传递对象呢? 显然, Java中不允许跨进程内存共享. 因此传递对象, 只能把对象拆分成操作系统能理解的简单形式, 以达到跨界对象访问的目的. 在J2EE中,采用RMI的方式, 可以通过序列化传递对象. 在Android中, 则采用AIDL的方式. 理论上AIDL可以传递Bundle,实际上做起来却比较麻烦.AIDL(AndRoid接口描述语言)是一种借口描述语言; 编译器可以通过aidl文件生成一段代码,通过预先定义的接口达到两个进程内部通信进程的目的. 如果需要在
        阅读全文
            
摘要:/** *判断当前应用程序处于前台还是后台 * * @param context * @return */ public static boolean isApplicationBroughtToBackground(final Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List tasks = am.getRunningTasks(1); if (!tasks.isEmpty()) { ComponentNam...
        阅读全文
            
摘要:editText.addTextChangedListener(new TextWatcher(){public void afterTextChanged(Editable s) {// TODO Auto-generated method stub//s:变化后的所有字符Toast.makeText(getApplicationContext(), "变化:"+s, Toast.LENGTH_SHORT).show();}public void beforeTextChanged(CharSequence s, int start, int count,int afte
        阅读全文
            
摘要:OK. What I'm trying to achieve is a layout that does the same effect as frozen panes in Excel. That is I want a header row that scrolls horizontally with the main ListView and a left hand ListView that scrolls vertically with the main ListView. The header row and the left hand listview should re
        阅读全文
            
摘要:方法四: 添加一个EditText,作为搜索框 + Filter 其实这个不算第四个方法,因为与第二个一样,主要是实现Filter。 但是对于EditText的监听,我以前也没有写过,所以也记录一下。 实现步骤: 1.添加一个EditText,并添加监听事件 ```Java EditText search_tv = (EditText) findViewById(R.id.search_et); search_tv.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequenc
        阅读全文
            
摘要:方法三: android:fastScrollEnabled="true"这个很简单,只要把属性设置了,就可以起作用了不过这个滑块比较丑,当然网上也有自定义图片的例子。参考 : http://www.eoeandroid.com/forum.php?mod=viewthread&tid=176342其实就是利用了反射: ```Java try {123456789 Field f = AbsListView.class.getDeclaredField("mFastScroller"); f.setAccessible(true); Object
        阅读全文
            
摘要:方法二:android:textFilterEnabled="true" + Filter这个属性在android.widget.AbsListView下,要求adapter必须实现Filterable接口参考: http://justcallmebrian.com/?p=149实现步骤:1.listview布局文件中设置android:textFilterEnabled="true"或代码中listview.setTextFilterEnabled(true);2.adapter实现Filterable接口Filterable接口很简单,就只有一个方法
        阅读全文
            
摘要:方法一: SectionIndexer接口 + 索引列表参考: http://www.apkbus.com/android-69999-1-1.html所谓section 就是一组有共性的item, 比如由相同的字母开头SectionIndexer接口主要的方法有:实现步骤:1.给listview添加section 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
        阅读全文
            
摘要:packagecom.rytong.mylist;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Random;importandroid.app.Activity;importandroid.content.Context;importandroid.graphics.Color;importandroid.graphics.Rect;importandroid.os.Bundle;importandroid.view.MotionEvent;importandroi
        阅读全文
            
摘要:视图的left , top , right , bottom 的值是针对其父视图的相对位置, 绿色区域是针对其父视图(即黄色区域为(0, 0)点)的坐标,不应该是(115, 170 ) 而是 (55, 55)
        阅读全文
            
摘要:google 提供的API中,有个类,大家都很熟悉,GestureDetector。使用它,我们可以识别用户通常会用的手势。但是,这个类不支持多点触摸(可能 google认为没有人会在几个手指都在屏幕上的时候,使用手势吧~),不过,最近和朋友们一起做的一个App,的确用到了多点手势(主要是 onScroll和onFling两个手势),所以,我就把这个类拓展了一下,来实现让多个控件各自跟着一跟手指实现拖动和滑动的效果。 顺便说一下,大家应该都知道,在Android3.0以后,Android的触摸事件的分配机制和以前的版本是有区别的。从3.0开始,用户在不同控件上操作产生的touch消息不会相互干
        阅读全文
            
摘要:一、结构public final class ViewTreeObserver extends Object java.lang.Object android.view.ViewTreeObserver二、概述 这是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知。这个全局事件不仅还包括整个树的布局,从绘画过程开始,触摸模式的改变等。ViewTreeObserver不能够被应用程序实例化,因为它是由视图提供,参照getViewTreeObserver()以查看更多信息。三、内部类 interface ViewTreeObserver.OnGl...
        阅读全文
            
摘要:android4.4对短信引入了一个全新的概念:默认短信应用。即android用户可以在系统设置里面选择一个默认的短信应用,只有这个应用才能进行手机的基本短信操作。按照google自己的解释这样做的原因是因为很多第三方的APP使用了一些隐藏的API接口,应该是反射调用把,既然是反射调用的非常规接口,因此这些接口就并不会有兼容性即CTS测试,也就不能保证稳定可靠。个人看来,目前市场上第三方短信应用太多了,而且厂商经常把通话,联系人,短信打包放在一起,因此手机上经常有多个短信应用,每个应用都能收短信发短信,有点混乱,尤其有的应用没有处理好,导致收到一条短信显示两条。囧。因此这个默认短信的操作也就是
        阅读全文
            
 
                     
                    
                 
                    
                
 
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号