自定义view

高级UI晋升之自定义View实战(九)

孤人 提交于 2019-12-06 00:14:58
更多Android高级架构进阶视频学习请点击: https://space.bilibili.com/474380680 1.前言: 本文采用自定义view的方法来实现一键清除的动画这个功能。 2.效果图: ​ 3.具体详细代码 3.1 \res\values\attrs_on_key_clear_circle_view.xml <resources> <declare-styleable name="OnKeyClearCircleView"> <attr name="innerCircleColor" format="color" /> <attr name="outCircleColor" format="color" /> <attr name="innerCircleRadius" format="integer" /> <attr name="progress" format="integer" /> <attr name="textSize" format="dimension" /> <attr name="outArcwidth" format="dimension" /> </declare-styleable> </resources> 对属性的说明: 一般,我们在res/values文件夹中添加attrs.xml文件来放置,其实

高级UI晋升之自定义View实战(五)

强颜欢笑 提交于 2019-12-06 00:14:55
更多Android高级架构进阶视频学习请点击: https://space.bilibili.com/474380680 本篇文章将从自定义View利器Canvas和Paint来进行详解 一、Canvas 为了后文更为方便的讲解Canvas的常用方法的使用,我们先来做一些准备工作,创建一个自定义View框架,先初始化一下Paint画笔,并设置相关方法: public class StudyView extends View { private Paint mPaint; private Context mContext; public StudyView(Context context) { super(context); init(context); } public StudyView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(context); } private void init(Context context) { mContext = context; mPaint = new Paint(); mPaint.setAntiAlias(true); // 消除锯齿 mPaint.setStrokeWidth(5); // 设置笔尖宽度 mPaint

高级UI晋升之常用View(三)中篇

安稳与你 提交于 2019-12-06 00:13:59
更多Android高级架构进阶视频学习请点击: https://space.bilibili.com/474380680 本篇文章将从ViewPager来介绍常用View: 文章目录 一、简介 二、基本使用 xml引用 page布局 创建适配器 设置适配器 标题栏 5.1. xml引用 5.2. 重写PagerAdapter的getTitle()方法 翻页动画 6.1. DepthPageTransformer 6.2. ZoomOutPageTransformer 6.3. 自定义动画 6.4. 开源框架ViewPagerTransforms 翻页监听 7.1. 设置方法 7.2. 翻页监听接口 7.3. 重写方法 7.4. 使用 三、与Fragment结合使用 创建Fragment及相应的xml布局 给Viewpager设置数据和适配器 四、实现轮播图效果 特点 使用介绍 2.1. 导包 + 权限 2.2. xml引用 2.3. 创建图片加载器 2.4. 设置数据 五、实现画廊效果 viewpager布局 pager布局 Adapter vp设置adapter 问题 一、简介 Viewpager,视图翻页工具,提供了多页面切换的效果。Android 3.0后引入的一个UI控件,位于v4包中。低版本使用需要导入v4包,但是现在我们开发的APP一般不再兼容3.0及以下的系统版本

微信程序开发语法

a 夏天 提交于 2019-12-05 19:51:13
在网上看到的 觉得还不错的文章,做个记录。 配置文件 app.json的配置(全局) { // 用来配置页面的路径 "pages":[ "pages/index/index", // 首页 "pages/Test/Test" // 跳转的页面 ], "window":{ "enablePullDownRefresh": true, // 是否支持下拉刷新 "backgroundTextStyle":"dark", // 下拉刷新的字体颜色,支持light "backgroundColor": "#e04c4c", // 设置下拉刷新的背景颜色 "navigationBarBackgroundColor": "#fff", // 设置微信程序顶部导航栏颜色 "navigationBarTitleText": "yejiawei", // 顶部导航栏文字 "navigationBarTextStyle":"black" // 顶部导航栏文字样式,black或者white "onReachBottomDistance": 50 // 设置上拉事件触发时距离底部的位置 }, "tabBar": { // 设置tab切换栏的配置 "list": [ { "pagePath": "pages/index/index", // 跳转的路径 "text": "首页", // tab的文字

视图层,模板层

爷,独闯天下 提交于 2019-12-05 18:56:13
一、视图层(view) 视图函数,本质上就是一个python函数,他接受web请求并返回响应。响应内容可以是HTML网页、重定向、404错误等任何东西,但本质都是返回一个 HttpResponse对象 。视图函数约定俗成写在 view.py 文件内 二、请求对象-HttpRequest request对象 部分常用属性 当一个页面被请求时, django将请求报文中的请求行、首部信息、内容主题封装成HttpRequest类中的属性 。 Django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象。 1. request.method #方式,返回的是纯大写的字符串。 2. request.GET #获取用户提交的get请求数据,返回的是列表套对象。 3. request.GET.get() #获取列表中的最后一个 4. request.GET.getlist() #获取列表类型的数据 5. request.POST #获取用户提交的post请求数据 6. request.POST.get() #获取列表中的最后一个 7. request.POST.getlist() #获取列表类型的数据 8. request.FILES #包含所有的上传文件信息。 注意: FILES 只有在请求的方法为POST 且提交的from表单带有

54 Django的视图层和模板层

你说的曾经没有我的故事 提交于 2019-12-05 18:01:42
目录 一、视图层 1. 小白必会三板斧 2. JsonResponse 3. FBV与CBV 3.1 FVB 3.2 CBV 4. CBV的源码 5. 给CBV加装饰器 二、模板层 1. 模板语法 2. 模板传值/取值 3. 过滤器 4. 标签 (逻辑相关) 5. 自定义过滤器和标签 5.1 如何自定义过滤器 5.2 自定义过滤器的使用 6. 模板的继承 7. 模板的导入 一、视图层 1. 小白必会三板斧 HttpResponse render redirect 视图函数必须要有一个返回值,并且返回值的数据类型必须是HttpResponse对象。 2. JsonResponse 通常情况下前后端数据交互采用的都是json的字符串(字典),想要使用json格式的数据,需要进行序列化与反序列化的操作。 python后端: # json序列化 json.dumps() # json反序列化 json.loads() js前端: // 序列化 JSON.stringify() // 反序列化 JSON.parse() 在Django项目中,想要将json格式的数据发送到前端,也需要先将数据序列化: def index(request): user_dic = {'name':'爆裂码畜xanxas','password':'123'} json_str = json.dumps(user

Android 自定义View EdgeEffect效果 ----ScrollView部分源代码剖析

放肆的年华 提交于 2019-12-05 17:57:04
EdgeEffect 提供了一种方式去画可滑动View组件的过度滑动效果。EdgeEffect的接口不多,只有6个接口。下面我们用ScrollView源码来分析一下如何实现过度滑动的晕影效果. ScrollView实现晕影效果,实际上是通过下面两个EdgeEffect private EdgeEffect mEdgeGlowTop; //滑动到顶时,出现的晕影效果 private EdgeEffect mEdgeGlowBottom; //滑动到底时,出现的晕影效果 从ScrollView的代码中可以看到OverScrollMode会对是否有EdgeEffect有影响,当OverScrollMode为OVER_SCROLL_NEVER的时候,是没有EdgeEffect效果的。 @Override public void setOverScrollMode(int mode) { if (mode != OVER_SCROLL_NEVER) {//当mode不为OVER_SCROLL_NEVER的时候,创建EdgeEffect实例。 if (mEdgeGlowTop == null) { Context context = getContext(); mEdgeGlowTop = new EdgeEffect(context); //创建EdgeEffect实例

day54

泄露秘密 提交于 2019-12-05 17:55:58
目录 视图层 模板层 视图层 小白必会三板斧 HttpResponse render redirect 视图函数必须有一个返回值 并且返回值的数据类型必须是HttpResponse对象 JsonResponse 前后端分离 ​ 前后端数据交互 该如何进行? ​ 通常情况下前后端的数据交互采用的都是json的字符串(字典) 后端只需要写好相应的url接口 前端访问你这个接口 你只需要返回一个大字典即可+开发文档 用来告诉前端工程师 你这个接口能够返回那些数据 前后端序列化都用哪些方法 python后端 js json.dumps JSON.stringify json.loads JSON.parse def index(request): user_dic = {'name':'jason好帅哦 我好喜欢~','password':'123'} # 如何让json不自动帮你对中文进行转码,把ensure_ascii设置为false,默认的是true # json_str = json.dumps(user_dic,ensure_ascii=False) # return HttpResponse(json_str) # return JsonResponse(user_dic,json_dumps_params={'ensure_ascii':False}) l = [1,2,3

Django之视图层与模板层

做~自己de王妃 提交于 2019-12-05 17:48:17
目录 一、视图层 1.1请求对象(HttpRequest) 1.1.1HttpRequest请求对象常用属性 1.2响应对象(HttpResponse) 1.2.1HttpResponse() 1.2.2render() 1.2.3redirect() 1.3JsonResponse 1.4FBV与CBV 1.4.1FBV 1.4.2CBV 1.5CBV源码 二、模板层 2.1模板语法 2.1.1模板语法的取值 2.1.2模板传值 2.2过滤器 2.3标签 2.3.1for标签 2.3.2if标签 2.3.3with标签 2.3.4csrf_token标签 2.4自定义过滤器和标签 2.4.1自定义前的准备 2.4.2自定义过滤器 2.4.3自定义标签 2.4.4自定义inclusion_tag 2.5模板的继承和导入 2.5.1继承 2.5.2模板的导入 一、视图层 视图函数(类)简称为视图,就是一个普通的函数(类),它的功能是接收web请求,并返回web响应. 研究视图函数需要熟练掌握请求对象(HttpRequest)和相应对象(HttpResponse) 1.1请求对象(HttpRequest) 1.1.1HttpRequest请求对象常用属性 #part1 一.HttpRequest.method 获取请求使用的方法(值为纯大写的字符串格式)。例如:"GET"、"POST"

Taro多端自定义导航栏Navbar+Tabbar实例

时光总嘲笑我的痴心妄想 提交于 2019-12-05 17:28:56
运用Taro实现多端导航栏/tabbar实例 (H5 + 小程序 + React Native) 最近一直在捣鼓taro开发,虽说官网介绍支持编译到多端,但是网上大多数实例都是H5、小程序,很少有支持RN端。恰好Taro是基于React技术,想着之前也做过一些react项目,如是抱着好奇深究了一番,采坑了不少,尤其是编译到RN时样式问题。 如上图:分别在H5、小程序、RN端运行效果 ◆ Taro引入阿里字体图标Iconfont 在进行下文介绍之前,先简单介绍下taro字体图标的使用,如果你项目中有引入Taro-UI,直接使用taro-ui图标即可,详情看 taro-ui图标 下载好阿里字体图标后,复制fonts文件夹到项目目录,如下图放在:styles目录下,并将iconfont.css复制一份改为iconfont.scss 引入: import './styles/fonts/iconfont.scss' 在h5、小程序下 这种写法即可: <Text className="iconfont icon-back"></Text> ,不过为了兼容RN,只能通过Unicode方式这样写: <Text className="iconfont"></Text> 如果是通过变量传递: let back = '\ue84c' <Text>{back}</Text> ◆