精华内容
下载资源
问答
  • android控件框架

    2016-06-23 08:36:57
    Android中的每个控件都会在界面中占得一块矩形的区域,而Android中,控件大致被分为两类ViewGroup 和 View空间 ViewGroup空间为父控件可以保含多个View控件,并管理其包含的View控件。 上层控件负责下层控件的测量...

    Android中的每个控件都会在界面中占得一块矩形的区域,而Android中,控件大致被分为两类ViewGroup 和 View空间

    ViewGroup空间为父控件可以保含多个View控件,并管理其包含的View控件。

    上层控件负责下层控件的测量与绘制并传递交互事件。

    通常在Activity中使用findViewById()方法,就是在控件树中以树的深度优先遍历来查找对应元素。


    每个Activity都包含一个window对象,在Android中的Window对象通常由PhoneWindow来实现。PhoneWindow将一个DecorView设置为整个应用窗口的根View。DecorView作为窗口界面的顶层视图,封装了一些窗口操作的通用方法。可以说DecorView将要显示的具体内容呈现在了PhoneWindow上,这里面的所有View的监听事件,都是通过WindowManagerService来进行接收,并通过Activity对象来回调相应的onClickListener。在显示上,它将屏幕分为两个部分,一个是TiTleView,另一个是ContentView。

    在代码中,当程序在onCreate()方法中调用setContentView()方法后,ActivityManagerService会回调onResume()方法,此时系统才会把整个DecorView添加到PhoneWindow中,并让其显示出来,从而最终完成界面的绘制

    展开全文
  • 前言View在Android的世界中扮演着重要的角色,正是这些控件组成了一个又一个精美的App。View体系是Android界面编程的核心,虽然它不属于四大组件但是它的重要行却毫不...Android控件框架在Android的世界中View是所有

    Android 高手核心知识点笔记(不断更新中🔥)点击查看 PS:各位童鞋不要忘记给我 star 一波哦~~

    #前言
    View 在 Android 世界中扮演着重要的角色,正是这些控件组成了一个又一个精美的 App。View 体系是 Android 界面编程的核心,虽然它不属于四大组件但是它的重要性却毫不逊色,这个系列我会陆续从 View 的滑动事件、View 的事件反馈、自定义 View 等多个方面逐步介绍 Android View 知识体系。如果能帮助到你,那是我莫大的荣幸。

    Android控件框架

    在 Android 的世界中 View 是所有控件的基类,其中也包括 ViewGroup。View是一个抽象的概念,特指界面中的某一个控件。而 ViewGroup 是代表着控件的集合,其中可以包含多个 View 控件并管理他们。从某种角度上来讲 Android中的控件可以分为两大类:View 与 ViewGroup。通过 ViewGroup,整个界面的控件形成了一个树形结构,这也就是我们常说的控件树,上层的控件要负责测量与绘制下层的控件,并传递交互事件。我们在开发中常常使用到的findViewById() 方法,就是在控件树中进行深度遍历(比较耗时)来查找对应元素的。在每棵控件树的顶部都存在着一个 ViewParent 对象,它是整棵控件树的核心,所有的交互都由它统一调度和分配,从而对整个视图进行控制。

    View树结构图

    在每一个 Activity 中都包含了一个 Window,而这个 Window 通常上是由PhoneWindow 实现的,而 PhoneWindow 又将 DecorView 设置为整个界面的根布局,DecorView 作为根布局将要显示的具体内容呈现在 PhoneWindow上,并提供了一些通用方法来操作界面。这里所有 View 的交互事件都由WindowManagerService(WMS)进行接收,并通过 Activity 回调相应的onClickListener。
    UI界面架构图

    在上面的视图上我们可以看到此时屏幕被分成了两部分:TitleView与ContentView。如图红色的区域就是ContentView,contentView是一个ID为content 的 Framelayou 这也是我们通过布局文件可以控制的区域,实际上我们所有的布局都设置在这样的 Fragmelayout 中。

    这也就是为什么Activity、Fragment中设置根布局的方法叫做setContentView了。

    插播: requestWindowFeature(Window.FEATURE_NO_TITLE) 与 setContentView() 调用顺序的关系

    在设置setContentView()方法之前我们可以通过requestWindowFeature(Window.FEATURE_NO_TITLE)方法设置标签来显示全屏。如果你看了Activity源码中的setContentVeiw()方法你会发现,当setContentView()一旦调用,ContentView布局与TitleView会同时被加载,加载之后在调用requestWindowFeature(Window.FEATURE_NO_TITLE)方法设置标签已经没有作用了。所以只有在setContentView()方法之前设置标签才能剔除TitleView达到ContentView占据全屏的效果。(更详细的说明请参见【Android View源码分析(一)】setContentView加载视图机制深度分析)

    视图树
    当Acitivity的生命周期中,当onCreate()方法中调用setContentView方法后,ActivityManagerService(AMS)会调用onResume()方法,此时系统才会把整个DecorView添加到PhoneWindow中显示出来,至此界面回执完成。

    贴一张图汇总一下吧
    总结

    更详细的说明请参见【Android View源码分析(一)】setContentView加载视图机制深度分析

    #Android的常用坐标系

    在Android的世界中我们最常用到的就是Android坐标系和视图坐标系了。对于一个控件而言,它在Android坐标系中的位置我们可以称之为:绝对坐标系;而在视图坐标系中,指示的就是它的相对位置了。下面我们就来分析一下他们吧
    ##1,Android坐标系
    在Android的世界中,屏幕的左上角定点作为Android坐标系的原点,从这个原点水平向右为X轴正方向,原点垂直向下为Y轴正反向。

    一言不合就上图

    Android系统中为我们提供了getLocationOnScreen(int[] location)方法来获取控件在整个屏幕的绝对坐标,此时要注意的是:该坐标是从屏幕的左上角(原点)开始获取的,所以也包括了状态栏的高度,如下图。
    ###1.1,在Android坐标系中屏幕区域的划分

    图片来自工匠若水博客
    通过上图我们可以很直观的看到Android的屏幕区域是如何划分的。接下来我们就看看如何或者这些区域中的坐标和度量方法吧。

    //获取屏幕区域的宽高等尺寸获取
    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int widthPixels = metrics.widthPixels;
    int heightPixels = metrics.heightPixels;
    
    //应用程序App区域宽高等尺寸获取
    Rect rect = new Rect();
    getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
    
    //获取状态栏高度
    Rect rect= new Rect();
    getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
    int statusBarHeight = rectangle.top;
    
    //View布局区域宽高等尺寸获取
    Rect rect = new Rect();  
    getWindow().findViewById(Window.ID_ANDROID_CONTENT).getDrawingRect(rect);  
    

    注意:

    这些方法最好都在Activity的onWindowFocusChanged() 方法之后调用,因为在Activity的声明周期中 onCreate、onStar、 onResume这些方法都不是界面visible的真正时刻,真正的visible是在onWindowFocusChanged()方法执行时才被执行的。(onWindowFocusChanged()是在onResume()之后调用的,所以有的文章也会说是onResume()之后调用,其实更加准确的是在onWindowFocusChanged()之后,此处我会在以后的文章中做详细介绍)

    2,视图坐标系

    在日常开发中我们接触最对的就是视图坐标系了,视图坐标系描述的是子控件在父控件中相对位置。贴一张图来说明一下

    QQ截图20170801223001.png

    所谓视图坐标系是以控件(例如图中的TextView)父视图(图中的ViewGroup))的左上角为坐标原点的(绿色部分),从原出发水平向右为x轴正方向,垂直向下为y轴正方向来表示控件的相对位置的。

    那么这个相对位置到底如何表示呢,同样看图说话。

    视图坐标方法概述

    简单的总结一下:

    View自身的相对坐标
    通过如下方法可以获得View到其父控件(ViewGroup)的距离:

    方法 解释
    getTop() 获取View自身顶边到其父布局顶边的距离
    getLeft() 获取View自身左边到其父布局左边的距离
    getRight() 获取View自身右边到其父布局左边的距离
    getBottom() 获取View自身底边到其父布局顶边的距离
    getX() 返回值为getLeft()+getTranslationX(),当setTranslationX()时getLeft()不变,getX()变。
    getY() 返回值为getTop()+getTranslationY(),当setTranslationY()时getTop()不变,getY()变。

    MotionEvent提供的方法
    我们看上图那个触摸点,我们知道无论是View还是ViewGroup,最终的点击事件都会由onTouchEvent(MotionEvent event)方法来处理,MotionEvent也提供了各种获取焦点坐标的方法:

    方法 解释
    getX() 获取点击事件距离控件左边的距离,即视图坐标
    getY() 获取点击事件距离控件顶边的距离,即视图坐标
    getRawX() 获取点击事件距离整个屏幕左边距离,即绝对坐标
    getRawY() 获取点击事件距离整个屏幕顶边的的距离,即绝对坐标

    注意:

    View中的getX()getY()方法只是与MotionEvent中的getX()、getY()方法只是重名而已,并不是一个。

    上面就解释了你在很多代码中看见各种getXXX方法进行数学逻辑运算判断的含义。不过上面只是说了一些相对静止的Android坐标点关系,下面我们来看看几个和上面方法紧密相关的View方法,此处在本篇文章中不是重点,我会在以后的文章中做详细讲解。:

    View宽高方法 解释
    getWidth() layout后有效,返回值是mRight-mLeft,一般会参考measure的宽度(measure可能没用),但不是必须的。
    getHeight() layout后有效,返回值是mBottom-mTop,一般会参考measure的高度(measure可能没用),但不是必须的。
    getMeasuredWidth() 返回measure过程得到的mMeasuredWidth值,供layout参考,或许没用。
    getMeasuredHeight() 返回measure过程得到的mMeasuredHeight值,供layout参考,或许没用。

    #参考:

    如果说我比别人看得更远些,那是因为我站在了巨人的肩上

    《Android群英传第三章》
    Android中的坐标系以及获取坐标的方法
    [Android应用坐标系统全面详解](http://blog.csdn.net/yanbober/article/details/50419117/)

    展开全文
  • 线性布局管理器(LinearLayout):点击打开链接 ... ... ... ...(一)Android UI框架 1.1手机 UI设计原则: 1、需要界面设计与程序逻辑完全分离,这样不仅有利于他们的并行开发,而且在后期修改界面时

    线性布局管理器(LinearLayout):点击打开链接

    表格布局管理器(TableLayout):点击打开链接

    帧布局管理器(FrameLayout):点击打开链接

    相对布局管理器(RelativeLayout):点击打开链接


    (一)Android UI框架

    1.1手机 UI设计原则:

    1、需要界面设计与程序逻辑完全分离,这样不仅有利于他们的并行开发,而且在后期修改界面时,也不用再次修改程序的逻辑代码
    2、根据不同型号手机的屏幕解析度、尺寸和纵横比各不相同,自动调整界面上部分控件的位置和尺寸,避免因为屏幕信息的变化而出现显示错误
    3、能够合理利用较小的屏幕显示空间,构造出符合人机交互规律的用户界面,避免出现凌乱、拥挤的用户界面

            Android用户界面框架(Android UI Framework),采用的是比较流行的MVC(Model-View-Controller)框架模型,MVC模型提供了处理用户输入的控制器(Controller),显示用户界面和图像的视图(View),以及保存数据和代码的模型(Model)。

    1.2Android与MVC设计:

           MVC(Model-View-Controller),即把一个应用的输入、处理、输出流程,按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型、视图、控制器。
           在Android系统中,视图(View),代表用户交互界面,一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。

    1.3视图树模型(View和Viewgroup):

            Android用户界面框架(Android UI Framework)采用视图树(View Tree)模型。即在Android用户界面框架中界面元素是以一种树型结构组织在一起,并称为视图树。视图树由View和ViewGroup构成

            Android系统会依据视图树的结构从上至下绘制每一个界面元素。每个元素负责对自身的绘制,如果元素包含子元素,该元素会通知其下所有子元素进行绘制


    (二)Android UI控件类简介

    2.1、View类

            View是界面的最基本的可视单元,呈现了最基本的UI构造块。View是Android中最基础的类之一,所有在界面上的可见元素都是View的子类,类的视图结构是android.view.View,如Button,RadioButton,CheckBox等等,都是通过继承View的方法来实现的。通过继承View,可以很方便地定制出有个性的控件出来。

            View有众多的扩展者,它们大部分是在android.widget包中,这些继承者实际上就是Android系统中的“控件”。直接继承者包括文本视图(TextView)、图像视图(ImageView)、进度条(ProgressBar)等。

    2.1.1、View类通用行为和属性

    XML属性名称 Java中对应方法 描述
    android:visibility setVisibility(int) 描述View的可见性
    android:id setId(int) 设置View的标识符,一般通过findViewById方法获取
    android:background setBackgroundResource(int 设置背景
    android:clickable setClickable(boolean) 设置View响应单击事件

    2.2ViewGroup类

    1、ViewGroup

            ViewGroup是个特殊的View,它继承于Android.view.View。ViewGroup是一个抽象类

             ViewGroup功能:一个是承载界面布局,另一个是承载具有原子特性的重构模块


    2.3界面控件

           Android系统的界面控件分为:定制控件系统控件两种

           常见的系统控件包括文本控件(TextView、EditText)、按钮控件(Button、ImageButton)、单选和复选按钮控件(Checkbox、RadioButton)、Spinner、ListView和TabHost等


    (三)Android UI布局

     Android下创建界面布局的方法有三两种:
              1、XML方式,使用XML文件描述界面布局
              2、程序代码创建,在程序运行时动态添加或修改界面布局
              3、XML和程序代码创建相结合


    使用XML文件声明界面布局的优势主要有
              1.将程序的表现层和控制层分离
              2.在后期修改用户界面时,无需更改程序的源代码
              3.用户还能够通过可视化工具直接看到所设计的用户界面,有利于加快界面设计的过程,并且为界面设计与开发带来极大的便利性

    在Android系统中,布局管理器是控件的容器

               Android提供了五种布局管理器用来管理控件,它们是线性布局管理器(LinearLayout)、表格布局管理器(TableLayout)、帧布局管理器(FrameLayout)、相对布局管理器(RelativeLayout)和绝对布局管理器(AbsoluteLayout)。

     布局管理器的主要作用有


            1.适应不同的移动设备屏幕分辨率
            2.方便横屏和竖屏之间相互切换
            3.管理每个控件的大小以及位置


    3.1线性布局LinearLayout 

    线性布局(LinearLayout)是一种常用的界面布局,也是RadioGroup, TabWidget, TableLayout, TableRow, ZoomControls类的父类。如果是垂直排列,则每行仅包含一个界面元素。如果是水平排列,则每列仅包含一个界面元素

    垂直排列 水平排列


    LinearLayout常用属性及对应方法
    XML属性名 对应的方法 描述
    android:divider setDividerDrawable(Drawable) 设置用于在按钮间垂直分割的可绘制对象。
    android:gravity  setGravity(int) 指定在对象内部,横纵方向上如何放置对象的内容.
    android:orientation setOrientation(int) 设置线性布局管理器内组件的排列方式,可以设置为horizontal(水平排列)、vertical(垂直排列、默认值)两个值的其中之一
    android:weightSum   定义最大的权值和

    3.2相对布局RelativeLayout 

    相对布局(RelativeLayout)是一种非常灵活的布局方式

    相对布局的特点:
    能够最大程度保证在各种屏幕类型的手机上正确显示界面布局


    1、以parent(父控件)为参照物的XML属性,属性取值可以为true或者false,如下表

    XML属性名称
    描述
    android:layout_alignParentTop
    如果为true,将该控件的顶部与其父控件的顶部对齐;
    android:layout_alignParentBottom 
    如果为true,将该控件的底部与其父控件的底部对齐;
    android:layout_alignParentLeft 
    如果为true,将该控件的左部与其父控件的左部对齐;
    android:layout_alignParentRight    
    如果为true,将该控件的右部与其父控件的右部对齐;
    android:layout_centerHorizontal 
    如果为true,将该控件的置于父控件的水平居中位置;
    android:layout_centerVertical   
    如果为true,将该控件的置于父控件的垂直居中位置;
    android:layout_centerInParent   
    如果为true,将该控件的置于父控件的中央;
    2、要指定参照物的XML属性,layout_alignBottom,layout_toLeftOf,layout_above,layout_alignBaseline系列和其他控件ID

    XML属性名称 描述
    android:layout_alignBaseline  将该控件的baseline与给定ID的baseline对齐;
    android:layout_alignTop  将该控件的顶部边缘与给定ID的顶部边缘对齐;
    android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐;
    android:layout_alignLeft  将该控件的左边缘与给定ID的左边缘对齐;
    android:layout_alignRight     将该控件的右边缘与给定ID的右边缘对齐;
    android:layout_above  将该控件的底部置于给定ID的控件之上;
    android:layout_below 将该控件的底部置于给定ID的控件之下;
    android:layout_toLeftOf  将该控件的右边缘与给定ID的控件左边缘对齐;
    android:layout_toRightOf   将该控件的左边缘与给定ID的控件右边缘对齐;

    3、指定移动像素的XML属性

    XML属性名称 描述
    android:layout_marginTop  上偏移的值
    android:layout_marginBottom  下偏移的值
    android:layout_marginLeft 左偏移的值
    android:layout_marginRight  右偏移的值


    3.3表格布局TableLayout 

           表格布局(TableLayout)也是一种常用的界面布局,采用行,列的形式来管理UI组件,它是将屏幕划分成网格单元(网格的边界对用户是不可见的),然后通过指定行和列的方式,将界面元素添加到网格中。它并不需要明确地声明包含多少行、列,而是通过添加TableRow、其他组件来控制表格的行数和列数。

           在表格布局中,一个列的宽度由该列中最宽的单元格决定。表格布局支持嵌套,可以将另一个表格布局放置在前一个表格布局的网格中,也可以在表格布局中添加其他界面布局


    表格布局TableLayout常用属性及相关方法
    属性名称
    相关方法
    描述
    android:collapseColumns
    setColumnCollapsed(int,boolean) 
    设置指定列为collapse,列索引从0开始 
    android:shrinkColumns
    setShrinkAllColumns(boolean) 
    设置指定列为shrink.,列索引从0开始 
    android:stretchColumns
    setStretchAllColumns(boolean) 
    设置指定列为stretch,列索引从0开始 

    建立表格布局要注意以下几点:
    1、向界面中添加一个线性布局,无需修改布局的属性值。其中,Id属性为TableLayout01,Layout width和Layout height属性都为wrap_content
    2、向TableLayout01中添加两个TableRow。TableRow代表一个单独的行,每行被划分为几个小的单元,单元中可以添加一个界面控件。其中,Id属性分别为TableRow01和TableRow02,Layout width和Layout height属性都为wrap_content


    3.4帧布局FrameLayout 

           帧布局(FrameLayout)是android布局系统中最简单的界面布局,是用来存放一个元素的空白空间,且子元素的位置是不能够指定的,只能够放置在空白空间的左上角。在帧布局中,如果先后存放多个子元素,后放置的子元素将遮挡先放置的子元素,就是越底层的,越应该编写的时候把代码往前面

            FrameLayout控件继承自ViewGroup,它在ViewGroup的基础上,定义了自己的三个属性,对应的XML Attributes分别为android:foregroundandroid:foregroundGravity android:measureAllChildren


    帧布局FrameLayout常用属性及相关方法
    属性名称 相关方法 描述
    android:foreground setForeground(Drawable)  设置绘制在子控件之上的内容,设置前景色
    android:foregroundGravity setForegroundGravity(int)  设置应用于绘制在子控件之上内容的gravity属性,控制前景色的重心
    android:measureAllChildren setMeasureAllChildren(boolean)  根据参数值,决定是设置测试所有的元素还是仅仅测量状态是VISIBLE or INVISIBLE的元素

    3.5绝对布局AbsoluteLayout    

           绝对布局(AbsoluteLayout)能通过指定界面元素的坐标位置,来确定用户界面的整体布局。绝对布局是一种不推荐使用的界面布局,因为通过X轴和Y轴确定界面元素位置后,Android系统不能够根据不同屏幕对界面元素的位置进行调整,降低了界面布局对不同类型和尺寸屏幕的适应能力。


    展开全文
  • 2018年Android开源项目控件框架大全

    千次阅读 2018-04-04 19:19:22
    1.多页切换 TabHost ...Android流式布局,可配置是否将每一行的空白区域平均分配给子控件。增加了将每一行的空白区域平均分配给子控件。demo中分别演示了在xml使用方式和在java代码中动态添加 希望能帮助大家

    1.多页切换 TabHost

    高仿网易云音乐客户端的 Home 页面切换 Tabhost,并且三角形是透明的,实现方式,自定义 AnimTabsView 继承 RelativeLayout 里面对当前选中的 item 处理 三角形变成透明效果,即在 onDraw 里面对三角形图片经行透明度处理,AnimTabsView 提供 setOnAnimTabsItemViewChangeListener 方法的 onChange() 用来监听点击切换 tabhost.

    2.对话框 (dialog)

    EasyDialogDemo
    A lightweight, flexible tip dialog in Android。你可以只用一行代码就实现提示对话框,包括设置对话框的位置,背景颜色和动画等等。

    3.按钮 (Button)

    ArrowDownloadButton 下载按钮从点击到下载完成特效
    ArrowDownloadButton 下载按钮从点击开始下载到下载完成各个阶段有不一样的特效展示,自定义一个 ArrowDownloadButton 然后监听点击事件setOnClickListener()在 onClick()里面 button.startAnimating();然后再按钮里面启动一个定时器 Timer 定时更新按钮进度button.setProgress(progress);

    4.日历 (Calendar)

    SilkCal
    根据iOS7原生日历和 Sunrise calendar实现的 calendar view。滚动月的时候会高亮显示当前年月。

    5.相机 (Camera)

    StickerCamera
    贴纸标签相机,功能:拍照,相片裁剪,给图片贴贴纸,打标签。

    6.图片高斯模糊(Blur)

    BlurredGridMenu
    GridView底部背景模糊特效:

    7.图像 (Image)

    android-image-slide-panel
    图片照片墙的加载和滑动特效,android-image-slide-panel 图片照片墙的加载图片的时候一张一张叠加和加载完成后切换每一张的滑动特效,自定义ImageSlidePanel,按照初叶的使用习惯,每一页应该是一个模板,所以此处命名时使用了 Template 关键字

    8.自定义RecyclerView

    BeerSwipeRefresh
    倒啤酒动画的下拉刷新:

    9.下拉列表和自动提示

    NiftyNotification
    android通知效果,基于Crouton项目:

    10.地图 (Map)

    AmapDemo
    AmapDemo仿照一号专车的地图界面,地图加载定位进入后的放大效果和地图移动效果非常棒,本项目指导我们如何使用地图功能,如何自定义系统定位蓝点,本项目主要引导我们如何嵌入第三方sdk实现地图定位效果。

    11.菜单 (Menu)

    FoldingTabBar.Android
    一个tab菜单动画,可以扩展与折叠。根据Dribbble的效果图实现。

    12.导航条 (actionbar)

    MaterialSheetFab
    酷炫动画效果的FAB按钮:

    13.选择器 (Picker)

    TimePicker
    Android滚动选择器PickerView,滚动时字体随距离渐变。手机里设置闹钟需要选择时间,可以使用这个控件进行时间选择

    14.进度条 (ProgressBar)

    RadarView漂亮的加载进度条
    RadarView漂亮的加载进度条,自定义视图RadarView看起来像一个搜索雷达。通过 new Thread()方式来实现循环滚动搜索,在根据角度设置starModel.setAlpha();

    15.滚动视图 (ScrollView)

    android-sticky-viewpager
    ViewPager带有粘性功能,常规的处理方法可能会超级复杂,因为涉及到大量的onTouch监听、拦截,滑动时因为效率问题影响用户体验,不信你去看一下应用宝、豌豆荚的App详情页,然后滑动一下试试。

    16.分段选择 (Segment)

    android-segmented-control-view
    自定义RadioGroup实现的分段选择控件:

    17.拖动条(SeekBar)

    MaterialRangeSlider双向拖动seekbarMaterialRangeSlider双向拖动seekbar,支持双向拖动,并且价格也跟着变化,滑动SeekBar的最小滚动条和最大滚动条的时候Tumb跟着变大,并且处理两个进度重叠问题。适用于展示价格之类的应用,让用户自己选择价格范围。

    18.网格(GridView)

    Android-DraggableGridViewPager
    仿zaker效果的拖拽排序。可以动态设置列数,动态增加或者减少item,当一页填满自动增加到下一页,当页数大于1,可以左右翻页。

    19.开关 (Switch)

    SwitchButton
    是用在Android上的开关按钮,最低兼容Android2.1

    20.Gallery和ImageSwitcher

    Android-Material-circular-button
    图片切换和按钮联动效果,添加按钮button可以根据ImageView获取当前显示的图片的颜色值来动态设置按钮颜色,过渡效果非常好.

    21.列表 (ListView)

    EmojiChat
    聊天页面实现,支持发送失败后重新发送,且支持发送表情,发送图片,适合做社交软件聊天页面参考,功能已经很强大稳定了,本项目主要通过ListView对List设置ChatAdapter进行显示的。自定义聊天底部弹窗KJChatKeyboard,KJChatKeyboard 控件继承RelativeLayout实现SoftKeyboardStateHelper.SoftKeyboardStateListener

    22.文字输入框 (EditText)

    BGAFlowLayout-Android动态添加View
    Android流式布局,可配置是否将每一行的空白区域平均分配给子控件。增加了将每一行的空白区域平均分配给子控件。demo中分别演示了在xml使用方式和在java代码中动态添加

    希望能帮助大家

    展开全文
  • 最近看了一个AndroidQuery的框架,里面的Demo,有个界面,让博主很喜欢。左右滑动十分顺畅,手感很好,于是拿来和大家分享一下。先看一下效果图:从图中可以看出,上面的布局是一个Layout里面嵌套有个ViewPager,...
  • Android控件架构在Android中,控件大致被分为两类,即ViewGroup控件与View控件。ViewGroup控件作为父控件可以包含多个View控件,并管理其包含的View控件。
  • 制作地图的框架以及制作地图的控件这里有一个比较好的视屏 地图框架视屏地址:http://edu.csdn.net/course/attend/332/2567 地图控件视屏地址:http://edu.csdn.net/course/attend/332/2568
  • Android控件SwipeRefreshLayout实现上下拉加载App基本都有下拉刷新的功能,以前基本都使用别人的PullToRefresh’框架或者自己写一个下拉刷新,但是我最近发现,android官方在其实已经有一个能很简单就实现下拉刷新的...
  • 安卓android-QUMI框架基本控件的简单使用首先我们来看个效果图接下来看一下代码目录在接下来我们就看看详细代码。activity.xmlMainActivity.java按着上述步骤去做,就可以实现QUMI控件的基本应用啦,如果想应用于...
  • Android控件常用属性

    千次阅读 2012-02-23 14:26:51
    android.view.View 已知直接子类: AnalogClock, ImageView, KeyboardView, ProgressBar, SurfaceView, TextView, ViewGroup, ViewStub 已知间接子类: AbsListView, AbsSeekBar, AbsSpinner, AbsoluteLayout,...
  • Android控件TextView的实现原理分析

    万次阅读 多人点赞 2013-03-11 00:56:59
    实际上,每一个视图都是一个控件,这些控制可以将自己的UI绘制在窗口的绘图表面上,同时还可以与用户进行交互,即获得用户的键盘或者触摸屏输入。在本文中,我们就详细分析窗口控件的上述实现原理。
  • Android常用框架

    万次阅读 多人点赞 2019-05-06 17:10:14
    1.缓存框架     1.1DiskLruCache:Java实现基于LRU的磁盘缓存,DiskLruCache不是google官方所写,但是得到了官方推荐,DiskLruCache没有编写到SDK中去,如需使用可直接copy这个类到项目中去。...
  • Android各种优秀的开源框架 地址:https://www.diycode.cc/sub_categories/2
  • Android 控件阴影实现

    万次阅读 2018-05-14 13:55:05
    ———————————————————————————————————— 让 View 产生阴影有以下 4 种方式: 控制 elevation 使用 OutlineProvider ...使用 MD 风格的控件,如 CardView,F...
  • 这里介绍一下,注解在android中用的最火的一个例子,对控件的注解。 { 对注解不熟悉的同学,可以看以下几个博文,写的很详尽: 注解的基本解释:http://www.cnblogs.com/peida/archive/2013/04/23/3036035.htm
  • Android控件GridView的使用

    万次阅读 多人点赞 2018-06-05 23:17:16
    如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView。 <?xml version="1.0" encoding="utf-8"?>...GridView xmlns:android=... android:layout_width="m...
  • android开源框架

    千次阅读 2013-05-10 09:39:08
    看见csdn上面有一篇关于android开源框架的,相当不错。自己也分享一下其他的开源框架,一下是从网上搜集而来 FBReaderJ  FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb、ePub...
  • Robotium之Android控件定位实践和建议

    千次阅读 2016-02-15 10:16:55
    UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种FindElement的控件定位方法实践和建议 今天我们换一个渊源更留长,当今更盛行的框架Robotium,实践下看它又是如何对控件进行定位的。  1. 背景...
  • android日历控件

    千次下载 热门讨论 2015-09-25 15:24:06
    这是一个日历控件,里面提供能的功能很完善了,可以设置字体颜色,选中的背景色,设置事务。点击左右翻页等
  • Android图形框架简介

    千次阅读 2011-07-26 15:11:13
    一、Android图形框架简介 Android图形框架可分为两部分:用于应用程序图形UI显示的上层View体系和用于图形渲染的底层图形驱动,可用下图表示 如图,View/GLSurfaceView体系就是用于构建Application UI的图形控件;...
  • Android Volley框架详细

    千次阅读 多人点赞 2018-08-22 09:53:33
    一、理清思路 篇 先来一张关于Volley的思维导图 Volley,它适用于数据请求...首先,要使用Volley框架解析网络json数据,那么就要先进行导入相应的依赖 在Modle中德build.gradle中导入 compile 'com.mcxiaoke.vol...
  • Android开发框架介绍

    千次阅读 2014-12-15 18:52:02
    android开发有很多开发框架使用,做App不一定用到框架,但好框架的思想也是值得学习。选择合适的开发框架可提供实用功能,简化项目开发提升效率。   二.Afinal框架 简介 Afinal是一个android的Sqlite orm和...
  • Android MVVM框架

    千次阅读 2018-01-16 11:31:12
    ViewModel层做的事情刚好和View层相反,ViewModel 只做和业务逻辑和业务数据相关的事,不做任何和UI、控件相关的事,ViewModel 层不会持有任何控件的引用,更不会在ViewModel中通过UI控件的引用去做更新UI的事情。...
  • UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种FindElement的控件定位方法实践和建议 今天我们换一个渊源更留长,当今更盛行的框架Robotium,实践下看它又是如何对控件进行定位的。 1. 背景 ...
  • Android ButterKnife框架的使用方法

    千次阅读 多人点赞 2020-06-29 18:11:02
    大家好!我是ACfun,我的昵称来自两个单词Accepted和fun。这篇博客记录一下如何在Android Studio开发环境中安装及使用ButterKnife注解框架
  • <!-- WebView调用JavaScript无参无返回值函数 --> webView.loadUrl("javascript:readyToGo()"); //方法名:readyToGo <!-- WebView调用JavScript有参无返回值函数 -->...//PhotoView开源框架用于图片缩放
  • 这是一个用于Android快速开发的框架,主要是在以往的项目开发中,收集到的常用的功能: 1.常用到的工具类; 2.BaseActivity,BaseFragment,还有BaseView的封装,以便于对ViewPage中的View进行分别的管理,符合...
  • Android 全景框架了解

    千次阅读 2016-03-10 20:29:29
    其中开发人员最注重的是Application Framework的API应用程序框架介绍:Application Framework调用libraries及Android运行环境组件,在往下调用Linux内核,Framework可以的理解为一些API的工具包,做成可以直接使用的...
  • Android常用框架汇总

    千次阅读 2016-09-21 09:55:10
    android开发常用的框架汇总,实时更新中网络访问RetrofitGradle:latestVersion:2.1.0 compile 'com.squareup.retrofit2:retrofit:latestVersion' CallAdapters:RxJava - com.squareup.retrofit2:adapter-rxjava ...
  • Android控件绘制过程

    千次阅读 2013-02-21 11:09:19
    第四步中,调用dispatchDraw(canvas)实现绘制子控件,dispatchDraw在ViewGroup中实现,其中会对子控件进行遍历,然后调用drawChild(ViewGroup中实现)绘制子控件,drawChild根据SKIP_DRAW标志为选择调用child.draw...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,570
精华内容 23,828
关键字:

android控件框架