Android系统联系人全特效实现(下),字母表快速滚动

在上一篇文章中,我和大家一起实现了类似于Android系统联系人的分组导航和挤压动画功能,不过既然 文章名叫做《Android系统联系人全特效实现》,那么没有快速滚动功能显然是称不上"全"的。 因此本篇文章我将带领大家在上篇文章的代码基础上改进,加入快速滚动功能。

如果还没有看过我 上一篇文章,请抓紧去阅读一下 Android系统联系人全特效实现(上),分组导航和挤压动画 。

其实 ListView本身是有一个快速滚动属性的,可以通过在XML中设置 android:fastScrollEnabled="true"来启用。包括以前老版本的Android联系人中都是使用这种 方式来进行快速滚动的。效果如下图所示:

不过这种快速滚动方式比较 丑陋,到后来很多手机厂商在定制自己ROM的时候都将默认快速滚动改成了类似iPhone上A-Z字母表快速滚动 的方式。这里我们怎么能落后于时代的潮流呢!我们的快速滚动也要使用A-Z字母表的方式!

下面就 来开始实现,首先打开上次的ContactsDemo工程,修改activity_main.xml布局文件。由于我们要在界面上 加入字母表,因此我们需要一个Button,将这个Button的背景设为一张A-Z排序的图片,然后居右对齐。另 外还需要一个TextView,用于在弹出式分组布局上显示当前的分组,默认是gone掉的,只有手指在字母表上 滑动时才让它显示出来。修改后的布局文件代码如下:

<RelativeLayout 

xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >  

    <ListView
        android:id="@+id/contacts_list_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:scrollbars="none"
        android:fadingEdge="none" >
    </ListView>  

    <LinearLayout
        android:id="@+id/title_layout"
        android:layout_width="fill_parent"
        android:layout_height="18dip"
        android:layout_alignParentTop="true"
        android:background="#303030" >  

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="10dip"
            android:textColor="#ffffff"
            android:textSize="13sp" />
    </LinearLayout>  

    <Button
        android:id="@+id/alphabetButton"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_alignParentRight="true"
        android:background="@drawable/a_z"
        />  

    <RelativeLayout
        android:id="@+id/section_toast_layout"
        android:layout_width="70dip"
        android:layout_height="70dip"
        android:layout_centerInParent="true"
        android:background="@drawable/section_toast"
        android:visibility="gone"
        >
        <TextView
            android:id="@+id/section_toast_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:textColor="#fff"
            android:textSize="30sp"
            />
    </RelativeLayout>  

</RelativeLayout>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 联系人
, android布局的实现
, 滚动
, 分组
, android联系人
, android 系统联系人
, 系统联系人
, android界面特效
, 字母分组
, 系统联系人android
, 联系人android
, 快速
文章
图片滚动特效、图片滚动js特效代码、网页图片滚动特效代码、滚动字幕特效代码大全、jquery图片滚动特效,以便于您获取更多的相关知识。

时间: 2025-01-25 15:14:42

Android系统联系人全特效实现(下),字母表快速滚动的相关文章

Android系统联系人全特效实现(上)分组导航和挤压动画(附源码)_Android

记得在我刚接触Android的时候对系统联系人中的特效很感兴趣,它会根据手机中联系人姓氏的首字母进行分组,并在界面的最顶端始终显示一个当前的分组.如下图所示:  最让我感兴趣的是,当后一个分组和前一个分组相碰时,会产生一个上顶的挤压动画.那个时候我思考了各种方法想去实现这种特效,可是限于功夫不到家,都未能成功.如今两年多过去了,自己也成长了很多,再回头去想想这个功能,突然发现已经有了思路,于是立刻记录下来与大家分享. 首先讲一下需要提前了解的知识点,这里我们最需要用到的就是SectionInde

Android系统联系人全特效实现(上),分组导航和挤压动画

记得在我刚接触Android的时候对系统联系人中的特效很感兴趣,它会根据手机中联系人姓氏的首字母进 行分组,并在界面的最顶端始终显示一个当前的分组.如下图所示: 最让我感兴趣 的是,当后一个分组和前一个分组相碰时,会产生一个上顶的挤压动画.那个时候我思考了各种方法想去实 现这种特效,可是限于功夫不到家,都未能成功.如今两年多过去了,自己也成长了很多,再回头去想想这 个功能,突然发现已经有了思路,于是立刻记录下来与大家分享. 首先讲一下需要提前了解的知识点 ,这里我们最需要用到的就是Section

win7系统在全屏状态下玩游戏突然被弹回桌面怎么解决

  win7系统在全屏状态下玩游戏突然被弹回桌面怎么解决          1.按下"win+R"组合键,打开"运行"窗口,输入"gpedit.msc"(不包括引号); 2.打开"本地组策略编辑器"窗口,依次展开:"计算机配置-管理模板-Windows 组件"下拉滚动条,找到"应用程序兼容性"; 3.鼠标左键单击,然后在右边的窗口里找到"关闭应用程序兼容性引擎"左键双

android系统在静音模式下关闭camera拍照声音的方法

话说为了防止偷拍,业内有不成文规定,手机公司在做camera时,点击拍照和录像键的时候,必须要有提示音.因此,google也就非常人性化的将播放 拍照声音的函数,放到了cameraService中,防止开发者能开发出不响的camera,从而只要调用拍照函数,一定会响,这是写死在 framework中的. 话说这个规定在当今有点不合时宜,这不,今天我收到测试提的一个BUG,说是公司的新需求,要求在静音模式下拍照声音也得取消.这么无耻的需求,也许就在我们中国最大的山寨手机公司才会提到.废话不多说,看

android系统在静音模式下关闭camera拍照声音的方法_Android

话说为了防止偷拍,业内有不成文规定,手机公司在做camera时,点击拍照和录像键的时候,必须要有提示音.因此,google也就非常人性化的将播放拍照声音的函数,放到了cameraService中,防止开发者能开发出不响的camera,从而只要调用拍照函数,一定会响,这是写死在framework中的. 话说这个规定在当今有点不合时宜,这不,今天我收到测试提的一个BUG,说是公司的新需求,要求在静音模式下拍照声音也得取消.这么无耻的需求,也许就在我们中国最大的山寨手机公司才会提到.废话不多说,看看是

Android零基础入门第2节:Android 系统架构和应用组件那些事

原文:Android零基础入门第2节:Android 系统架构和应用组件那些事  继上一期浅谈了Android的前世今生,这一期一起来大致回顾一下Android 系统架构和应用组件.   一.Android 系统架构 Android系统的底层建立在Linux系统之上,该平台由操作系统.中间件.用户界面和应用软件4层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建.这种软件叠层结构使得层与层之间相互分离,明确各层的分工.这种分工保证了层与层之间的低耦合,当下层的层内或层

对于android系统通讯录开发重复联系人怎么对比并且显示重复联系人提示语?

问题描述 对于android系统通讯录开发重复联系人怎么对比并且显示重复联系人提示语? 1.打开通讯录,新建联系人 2.添加联系人,比如 姓名xyz,号码123456,保存 3.在新建联系人,添加上述一样的联系人,保存 然后怎么对比添加有重复联系人的提示语? 如何在contactsaveservice.java里面的savecontact函数里面对比处理? 解决方案 用的数据库么?如果数据库,把姓名作为主键,插入重复联系人会丢出异常,捕获下提示用户即可.

系统联系人-android中如何向系统中添加联系人数据

问题描述 android中如何向系统中添加联系人数据 以下是我的代码,但是总是添加的时候程序会崩溃,也没有错误的日志,麻烦哪位大神帮忙一下 ContentValues values = new ContentValues(); //先向RawContact.CONTENT_URI执行一个控制插入,目的是获得系统返回的rawContacctId Uri rawContactUri = this.getApplicationContext().getContentResolver() .insert

在ubuntu12.04 64位下编译从github上下载的android系统最新源码,出现编译错误

问题描述 在ubuntu12.04 64位下编译从github上下载的android系统最新源码,出现编译错误 在ubuntu12.04 64位下编译从github上下载的android系统最新源码,出现编译错误 make: *** 没有规则可以创建"out/build-full.ninja"需要的目标"prebuilts/build-tools/linux-x86/bin/ckati". 停止. 耗费了2天了还没解决,急 解决方案 http://zhidao.ba