自定义view

进阶之路 | 奇妙的Animation之旅

一世执手 提交于 2020-02-25 00:47:20
笔者在之前进阶之路 | 奇妙的View之旅中,提及View滑动的七种方式的时候简单说到Animation,想必看过的读者们已经对Animation有一个简单的印象。 动画,对于一个APP来说非常重要,现在市面上使用的用户比较多的APP,无一不是采用了各种丰富多彩的动画效果;在应用中善于使用动画,不仅让APP的体验更上一层楼,还能牢牢抓住用户的心! 而作为开发者的我们,一定要对动画有一定深度的了解,在日常的学习或者工作中多多尝试动画,以提高应用程序的美观度和易用性! 什么,你不信动画很重要…反手甩你一个对比视频:过渡动画有多重要? 二.核心知识点归纳 2.1 View动画 View动画(视图动画)分为两部分: 补间动画 帧动画 2.1.1 补间动画 1 基础知识 Q1:主要的变换效果 名称 标签 子类 效果 平移动画 translate TranslateAnimation 移动View 缩放动画 scale ScaleAnimation 放大或缩小View 旋转动画 rotate RotateAnimation 旋转View 透明度动画 alpha AlphaAnimation 改变View的透明度 注意:View动画的View移动只是视觉效果,并不能真正的改变view的位置。 Q2:动画的创建 对于View动画建议采用XML来定义,因为XML可读性更好 创建方法一:通过XML定义

第三章UI

若如初见. 提交于 2020-02-24 14:21:22
常用控件 textview match_parent:和父局大小一样 wrap_content:由内容决定大小 文字对齐方式: android : gravity = "center" button 默认字母全部大写 禁用大写: android : textAllCaps = "false" edittext 提示性文本: android : hint = "请输入" 解决内容过大问题: android : maxLines = "2" imageview progressbar 圆形进度条 public void onClick ( View view ) { if ( progressBar . getVisibility ( ) == View . GONE ) { progressBar . setVisibility ( View . VISIBLE ) ; } else { progressBar . setVisibility ( View . GONE ) ; } } 长形进度条 style = "?android:attr/progressBarStyleHorizontal" android : max = "100" AlertDialog 弹出对话框 public void onClick ( View view ) { AlertDialog .

Android - RecyclerView进阶(1)—LayoutInflater

若如初见. 提交于 2020-02-24 13:53:39
我的CSDN: ListerCi 我的简书: 东方未曦 RecyclerView是项目中使用最为频繁的控件之一,相关的知识点非常多,如果对RecyclerView的了解不够深入,那么在进行性能优化、自定义动画等工作时就会觉得力不从心。博主本人也有过多次这样的经历,因此下定决心要对RecyclerView相关的知识进行整理和学习,所以有了这一系列的博客。 本系列将会对RecyclerView的内容和进阶使用进行介绍,包括布局加载、ItemDecoration、item动画、LayoutManager、ViewHoler重用和RecyclerView封装等内容,本文是第一篇,先来介绍一下ViewHolder视图的加载。话不多少,让我们开始吧。 一、加载布局的三个方法 我们一般通过LayoutInflater将布局文件加载到某个界面或者Layout中,加载布局文件时有如下3个方式。 LayoutInflater . from ( mContext ) . inflate ( R . layout . item , null ) ; LayoutInflater . from ( mContext ) . inflate ( R . layout . item , parent , false ) ; LayoutInflater . from ( mContext ) . inflate

视图家族 & 路由组件

给你一囗甜甜゛ 提交于 2020-02-23 12:19:39
目录 视图家族 & 路由组件 视图集与路由组件 基于 GenericAPIView 的十大接口 基于 generics 包下工具视图类的六大基础接口 视图集 路由组件:必须配合视图集使用 自定义路由组件(了解) 上传图片接口 权限 做项目是否要分表管理前后台用户 权限六表 三大认证规则 视图家族 & 路由组件 视图基类:APIView、GenericAPIView 视图工具类:mixins包下的五个类(六个方法) 工具视图类:generics包下的所有GenericAPIView的子类 视图集:viewsets包下的类 GenericAPIView基类(基本不会单独使用,了解即可,但是是高级视图类的依赖基础) 1)GenericAPIView继承APIView,所有APIView子类写法在继承GenericAPIView时可以保持一致 2)GenericAPIView给我们提供了三个属性 queryset、serializer_class、lookup_field 3)GenericAPIView给我们提供了三个方法 get_queryset、get_serializer、get_obj mixins包存放了视图工具类(不能单独使用,必须配合GenericAPIView使用) ​``` CreateModelMixin:单增工具类 create方法 ListModelMixin

自定义View 进度条

梦想的初衷 提交于 2020-02-23 10:13:01
1.在values下面新建一个attrs.xml,现在里面定义我们的自定义属性, <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="RoundProgressBar"> <attr name="roundColor" format="color"></attr> <attr name="roundProgressColor" format="color"></attr> <attr name="roundWidth" format="dimension"></attr> <attr name="textColor" format="color"></attr> <attr name="textSize" format="dimension"></attr> <attr name="max" format="integer"></attr> <attr name="textIsDisplayable" format="boolean"></attr> <attr name="style"> <enum name="STROKE" value="0"></enum> <enum name="FILL" value="1"></enum> </attr> </declare

尝试用kotlin做一个app(二)

蹲街弑〆低调 提交于 2020-02-23 00:35:48
导航条 我想实现的效果是这样的 类似于ViewPager的效果,子类导航页面可以滑动,当滑动某个子类导航页面,导航线会平滑地向父类导航移动 · 添加布局 <!--导航分类:编程语言/技术文档/源码下载--> <LinearLayout android:id="@+id/homepage_nav" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_below="@+id/vp_homePageAd" > <TextView android:id="@+id/homepage_nav_prog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="编程语言" android:textSize="17dp" android:textStyle="bold" android:layout_weight="1" android:gravity="center" /> <TextView android:id="@+id/homepage_nav_doc" android:layout

Android中View的知识体系——(2)View的滑动

吃可爱长大的小学妹 提交于 2020-02-21 11:33:40
Android中View的知识体系——(2)View的滑动 作者:黑衣侠客 一、前言 在Android设备上,滑动几乎是应用的标配,不论是下拉刷新还是SlidingMenu,它们的基础都是滑动。所谓滑动效果,归根结底它们都是由不同的滑动外加一些特效所组成的。因此,掌握滑动的方法是实现绚丽自定义控件的基础。通常通过三种方法来实现View的滑动: 通过View本身提供的scrollTo/scrollBy方法来实现滑动 通过动画给View施加平移效果来实现滑动 通过改变View的LayoutParams使得View重新布局从而实现滑动 下面我们就来一一分析学习。 二、View的滑动 1.使用scrollTo/scrollBy public void scrollTo ( int x , int y ) { if ( mScrollX != x || mScrollY != y ) { int oldX = mScrollX ; int oldY = mScrollY ; mScrollX = x ; mScrollY = y ; invalidateParentCaches ( ) ; onScrollChanged ( mScrollX , mScrollY , oldX , oldY ) ; if ( ! awakenScrollBars ( ) ) {

Android自定义的弹窗

放肆的年华 提交于 2020-02-19 03:49:56
package com.microduino.qoobot.view; import android.app.Activity; import android.app.Dialog; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import android.view.WindowManager; import com.microduino.qoobot.R; /* * :Created by z on 2019/1/16 */ public abstract class BaseDialog { private Dialog dialog; private Activity activity; public BaseDialog(Activity activity,int res){ dialog = new Dialog(activity, R.style.BuildDialog); LayoutInflater inflater = LayoutInflater.from(activity); View view = inflater.inflate(res, null);

Android Studio 学习笔记(四):Adapter和RecyclerView说明

醉酒当歌 提交于 2020-02-18 21:36:40
在现版本中,滚动控件有多种,而相比于ListView,GridView,RecyclerView的用途更广,因此将前两者作为Adapter适配器的引入,再对RecyclerView进行简单讲解。 MVC & Adapter 为了方便理解,这里介绍一下Android应用设计的基础,也就是MVC架构,如图。 控制器(Controller)- 可看作一个中间桥梁,响应来自View的用户交互,通过对View设定的事件逻辑修改Model,再回传实现View的数据刷新。 视图(View) - 用户看到的图形界面,由界面设计人员负责。 模型(Model) - 保存数据状态,其中由程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。 MVC架构:Model(数据)以Controller(控制器)设定的方式呈现在View(用户界面)中。 简而言之:Adapter在其中充当Controller(控制器)的角色,在其中设定每一个元素长什么样子,怎么排列各个元素的逻辑,再把包含代码逻辑的复杂数据按设定好的样式给View。其中自带的BaseAdapter用得最多。 常见用法是新建一个类继承自BaseAdapter,重写其中的方法并构造新的方法,结合ListView、GridView控件使用。 ListView和GridView的用法相似,只是功能不同

Android开发之Activity的创建跳转及传值

假如想象 提交于 2020-02-18 21:12:27
写在前面; 在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider)。今天所介绍的就是Android开发中的四大组件之一:Activity,其他那三大组件以后再进行介绍。说道Android中的Activity,如果你做过iOS开发的话,Activity类似于iOS中的ViewController(视图控制器)。在应用中能看到的东西都是放在活动中的。活动是安卓开发比较重要的东西,是用户交互和数据的入口。本篇博客要介绍的内容是活动的创建,活动的跳转与值的透传。 iOS中的ViewController也是有自己的生命周期的,了解Activity或者ViewController的生命周期是很有必要的,这要你才能搞明白在什么时间做什么事情。好废话少说,Activity将要登场。 使用Android Studio创建一个Android的Add New Activity工程(步骤略,详见上篇博客),在这个工程中默认会有一个Blank Activity,而且在Blank Activity中自动添加了一个Text View, 上面写着"Hello World", 运行这个工程就会看到Hello World在一个白色的活动中。