自定义view

android录音的动画自定义View

匿名 (未验证) 提交于 2019-12-03 00:26:01
最近接了一下新需求,就像录音的按钮… 之前在微信小程序上也写过-> 小程序录音及其动画 去年在android上也实现过….下面是去年实现的时候的代码 大概这样 把之前android写过的代码放上来吧,也是一个笔记… /********************************************************************* * This file is part of seeyoutime project * Created by ys@yeshen.org on 2017 / 2 / 21. * Copyright (c) 2017 XingDian Co ., Ltd . - All Rights Reserved *********************************************************************/ /** * 短视频录制界面的开始录制按钮,有如下特性: * 1 ,放大 * 2 ,显示当前进度 */ class ProgressRecordView : View { private var diameter = 0F private var barPressWidth = 0F private var barPressColor = 0xFFFFFFFF.toInt () private

django之cookies,session 、中间件及跨站请求伪造

笑着哭i 提交于 2019-12-03 00:22:14
cookies 和session 为什么会有cookie? ​ 由于http协议是无状态的,即用户访问过后,不留痕迹(状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。) 无法记住用户是谁。但是我们可能在登录之后,要保存用户的部分信息,这样下次就可以直接登录了,这里就引出了cookie 什么是cookie ​ cookie是保存在客户端浏览器上的键值对,是服务端发来的,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息。 cookie的原理 ​ cookie是服务端设置在客户端浏览器上的键值对,也就意味着浏览器其实可以拒绝服务端的"命令",默认情况下 浏览器都是直接让服务端设置键值对 cookie实例 #设置cookie obj1.set_cookie() #获取 request.COOKIES.get() #删除 obj1.delete_cookie() ################## ##登录后端核心代码## ################# def login(request): # print(request.path_info) # 只拿url 不拿get请求携带的参数 # print(request.get_full_path()) # 把url以及携带的参数都拿到 if request.method ==

自定义View(折线图),可扩展

匿名 (未验证) 提交于 2019-12-03 00:22:01
项目GitHub地址: https://github.com/GuLiSir/GuLiBlogDemo 工作的一个需求,要求实现一条线线慢慢画出来然后转折一次,再画出一个点,后来实现是实现了,发现做的还可以拓展,例如可以用来做折现统计图,画三角形,五角星等,目前可以实现画线和画点两种功能,至于画其他效果,需要拓展一下就好,并不是很麻烦.先看看效果吧. 废话不多说,直接上代码部分: 首先继承一个View并实现一个自己定义的接口, 实现接口的原因是因为项目中有很多其他的自定义View,有通用的部分,所以就将其抽象出来,解耦用,不需要的可以不用实现, 接口的内容是: 一个准备的方法,一个开始方法,一个主动结束方法. 然后就是另外一个接口,这个接口是放在自定义View里面的 这个接口定义的是每一个绘制效果,例如绘制一条直线的动画,或者一个点的动画,都是实现了此接口,该接口只需要实现两个方法就可以 getDuration() 是自己需要绘制的时间,这个方法最简单,直接返回毫秒值就行了 drawSelfModule(Canvas canvas , float percent ); 是绘制自己的动画效果,一个参数是 canvas ,这是必须的,到时将内容绘制在此画布上,第二个参数 percent 代表的是百分比,该值会根据上一个方法获取的时间,然后计算出当前绘制的进度

android 之自定义适配器(重写的getView()方法中convertView元素的妙用)一个实例

匿名 (未验证) 提交于 2019-12-03 00:22:01
实现效果: 主要还是ListView的优化: 基本思路: <1>使用自定义适配器完成操作 <2> 将listView进行优化处理 示例代码: package com.hsj.example.baseadapterdemo05; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.hsj.example.baseadapterdemo05.com.hsj.domain.Person; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView listView_persons; private MyAdapter

Django中间件

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-03 00:21:19
Django中间件 中间件介绍 官方的说法:中间件是-个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。 但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。 说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类, 类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法。 用户访问频率限制 用户是否是黑名单 白名单 所有用户登录校验 只要是涉及到网址全局的功能 你就应该考虑使用中间件 django中间件暴露给程序员五个可以自定义的方法(五个方法都是在特定的条件下自动触发的) 需要掌握的: process_request:请求来的时候 会从上往下依次经过每一个中间件里面process_request,一旦里面返回了HttpResponse对象那么就不再往后执行了 会执行同一级别process_response ​ def process_request(self,request): ​ print('我是第一个自定义中间件里面的process_request方法') ​ return HttpResponse("我是第一个自定义中间件里面的HttpResponse对象返回值") #

19 Django中间件

吃可爱长大的小学妹 提交于 2019-12-03 00:18:39
目录 一、前言 二、中间件介绍 2.1 什么是中间件 2.2 自定义中间件 2.3 自定义一个中间件示例 三、自定义中间价 process_request 四、自定义中间件 process_response 五、自定义中间件 process_view(了解) 六、自定义中间件方法 process_exception(了解) 七、自定义中间件 process_template_response(了解) 八、中间件的执行流程 九、中间件版登录验证 十、伪站请求伪造 十一、截取钓鱼网站的策略(伪站请求伪造) 1. {% csrf_token %} 2. Ajax解决 十二、csrf两种装饰器方式 一、前言 在前面的博客中已经介绍了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面。我们通过给几个特定视图函数加装饰器实现了这个需求。但是以后添加的视图函数可能也需要加上装饰器,这样会稍微的有些繁琐 下面的内容即将让我们通过一些特点的方式实现控制全局的效果 二、中间件介绍 下面展示一张图来重新看一下,Django请求声明周期流程图 2.1 什么是中间件 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。 但是由于其影响的是全局

中间件

╄→尐↘猪︶ㄣ 提交于 2019-12-03 00:18:02
目录 为什么学习中间件? 中间件 什么是中间件? 中间件能做什么? 需要掌握的 自定义中间件 自定义一个中间件示例 process_request process_response process_exception process_template_response(用的比较少) 中间件的执行流程 中间件版登录验证 为什么学习中间件? 在前面的博客中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面。我们通过给几个特定视图函数加装饰器实现了这个需求。但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐。 下面即将通过一些特点的方式实现控制全局的效果,减少自己写的代码。 中间件 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。 但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。 说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法。 我们一直都在使用中间件,只是没有注意到而已,打开Django项目的Settings.py文件

Django框架之 中间件

人走茶凉 提交于 2019-12-03 00:13:48
目录 一、中间件介绍 二、自定义中间件 2.1 process_request 2.2 process_response 2.3 process_view 2.4 process_exception 2.5 process_template_response(用的比较少) 三、中间件的执行流程 四、中间件的应用场景 4.1 中间件版登录验证 五 CSRF_TOKEN跨站请求伪造 5.1 什么是csrf 5.2 csrf攻击原理 5.3 解决 5.4 csrf装饰器 附:Django请求流程图 一、中间件介绍 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统, 用于在全局范围内改变Django的输入和输出 。 每个中间件组件都负责做一些特定的功能 。 但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。 中间件位于web服务端与url路由层之间 说的直白一点中间件是帮助我们 在视图函数执行之前和执行之后都可以做一些额外的操作 ,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法。 我们一直都在使用中间件,只是没有注意到而已,打开Django项目的Settings.py文件,看到下图的MIDDLEWARE配置项,每一个配置项都对应着一个中间件。 请求来的时候

微信小程序之自定义组件Component

匿名 (未验证) 提交于 2019-12-03 00:11:01
新建一个 components 文件夹,用于存放我们以后开发中的所用组件,例如目的是实现一个 弹框 组件,因此,在 components 组件中新建一个 Dialog 文件夹来存放弹窗组件,在 Dialog 下右击新建 Component 并命名为 dialog 后,会生成对应的 json wxml wxss js 4个文件,也就是一个自定义组件的组成部分,此时项目结构应该如下图所示: 1.需要声明自定义组件,也就是将 dialog.json 中 component 字段设为 true { "component" : true , // 自定义组件声明 "usingComponents" : {} // 可选项,用于引用别的组件 } 2.需要在 dialog.wxml 文件中编写弹窗组件模版,在 dialog.wxss 文件中加入弹窗组件样式,它们的写法与页面的写法类似 dialog.wxml 文件: <!--component/dialog/dialog.wxml--> <view class = 'wx_dialog_container' hidden = "{{!isShow}}" > <view class = 'wx-mask' ></view> <view class = 'wx-dialog' > <view class = 'wx-dialog-title' > {

android 温度折线图绘制

匿名 (未验证) 提交于 2019-12-02 23:43:01
很多人在做天气开发app的时候经常需要做到温度折线图 简单地对自定义的View做个详解 首先一个要弄懂使用canvas画什么,一个温度折现图其实就“画”3样东西,温度点,数值,折线段。另外一个很重要的注意点就是位置,处理不好的话很容易出现折线图不在视图中。 首先复写onMeasure方法 google已经封装好了,直接调用即可,有兴趣可以去看看resolveSize的源码, setMeasuredDimension(resolveSize(mDefaultWidth,widthMeasureSpec),resolveSize(mDefaultHeight,heightMeasureSpec)); 另外,在layout中使用的最好把layout_width和layout_height两个参数设置为wrap_parent 每个温度点对应的都是一个View,如图: pointX设置为View宽度的一半,即:pointX = viewWidth / 2; pointY比较难了,因为要考虑到一组数据最大值最小值有可能相差很大,数值与数值之间的差距大小问题,这里我这样处理: 首先我们知道这个View的宽高都是wrap_parent,它要配合RecyclerView使用,这个RecyclerView在layout中的高可以设置为270dp,然后添加许多自定义的View到适配器中,