context

canvas 星空特效

余生长醉 提交于 2020-03-01 10:39:01
阿里云图标 首页背景–星空特效 效果 代码 <html> <canvas id="_bgcanvas" style="position: fixed;z-index:-1"></canvas> <script> /** * * @param {string} element canvas 元素 * @param {int} width 宽 * @param {int} height 高 */ function xingkong (element, width, height) { var canvas = document.querySelector(element); var w = width ||document.documentElement.clientWidth; var h = height || document.documentElement.clientHeight; canvas.width = w, canvas.height = h; var context = canvas.getContext("2d"); // 背景 context.fillStyle = "#090723"; context.fillRect(0, 0, w, h); for (var l = [], r = 0; r < h; r += 4){ l.push(new t({ x:

结对项目:日程管理(三)

烈酒焚心 提交于 2020-03-01 10:38:11
查看日程界面:主要实现已存在日程的信息查看。 主要代码 private void getInfo() { Intent intent = getIntent(); id = intent.getIntExtra("id", -1); mList = DataBaseUtil.queryLogById(this, id); tvTitle.setText(mList.get(0).getTitle()); tvContent.setText(mList.get(0).getContent()); tvTime.setText(mList.get(0).getTime()); } 删除日程界面:本界面主要实现的功能是建好后的日程的删除操作。 主要代码 public static void deleteInfoById(Context context, int id) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase dbWrite = dbHelper.getWritableDatabase(); dbWrite.delete("info", "_id = ?", new String[]{String.valueOf(id)}); dbWrite.close(); dbHelper.close(); } 来源:

Flutter-Provider学习

▼魔方 西西 提交于 2020-03-01 09:56:20
使用 Provider,我们需要解决以下 3 个问题: 资源(即数据状态)如何封装? 资源放在哪儿,才都能访问得到? 具体使用时,如何取出资源? 总结 我们既可以用 Provider 来实现静态的数据读传递,也可以使用 ChangeNotifierProvider 来实现动态的数据读写传递,还可以通过 MultiProvider 来实现多个数据资源的共享。 在具体使用数据时,Provider.of 和 Consumer 都可以实现数据的读取,并且 Consumer 还可以控制 UI 刷新的粒度,避免与数据无关的组件的无谓刷新。 可以看到,通过 Provider 来实现数据传递,无论在单个页面内还是在整个 App 之间,我们都可以很方便地实现状态管理,搞定那些通过 StatefulWidget 无法实现的场景,进而开发出简单、层次清晰、可扩展性高的应用。事实上,当我们使用 Provider 后,我们就再也不需要使用 StatefulWidget 了 相关实战代码 Consumer<GlobalModel>( builder: (context, _counter, child) => RaisedButton( onPressed: () { _counter.incresement(); Navigator.pop(context, "我是返回值"); }, child:

搭建自己的博客(十六):封装优化阅读量代码

空扰寡人 提交于 2020-03-01 09:29:11
1、将阅读量的代码封装在一个app中,增加扩展性 新建app: python manage.py startapp read_statistics 2、变化的部分 3、上代码 from django.contrib import admin from .models import BlogType, Blog # Register your models here. @admin.register(BlogType) class BlogTypeAdmin(admin.ModelAdmin): list_display = ('id', 'type_name') # 需要显示的列表 @admin.register(Blog) class BlogAdmin(admin.ModelAdmin): list_display = ('title', 'blog_type', 'author', 'get_read_num', 'created_time', 'last_updated_time') blog下的admin.py from django.db import models from django.contrib.auth.models import User from ckeditor_uploader.fields import RichTextUploadingField

startActivity 报错

有些话、适合烂在心里 提交于 2020-03-01 04:02:50
原因是:   Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果 使用 Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新 的task,遇到上面那个异常的,都是因为使用了Context的startActivity方法。解决办法是,加一个flag。 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 修改后代码如下: Intent intent = new Intent(); intent.setClass(mContext, PhotoView.class); Bundle bundle = new Bundle(); intent.putExtras(bundle); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(intent); 来源: oschina 链接: https://my.oschina.net/u/2447831/blog/625912

动态设置布局LayoutInflater

泄露秘密 提交于 2020-02-29 21:26:27
LayoutInflater作用是将layout的xml布局文件实例化为View类对象。LayoutInflater 的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout目录下的xml布局文件。而且实例化!而 findViewById()是找详细某一个xml下的详细 widget控件(如:Button,TextView等)。 获得 LayoutInflater 实例的三种方式、 1.LayoutInflater inflater = getLayoutInflater(); //调用Activity的getLayoutInflater() 2.LayoutInflater inflater = LayoutInflater.from(this); 3.LayoutInflater inflater = (LayoutInflater)Context.getSystemService(LAYOUT_INFLATER_SERVICE); getLayoutInflater(): Activity 的 getLayoutInflater() 方法是调用 PhoneWindow 的getLayoutInflater()方法。看一下该源码: public PhoneWindow(Context context) { super(context)

LayoutInflater的获取与使用

微笑、不失礼 提交于 2020-02-29 21:14:16
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。 具体作用: 1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入; 2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。 LayoutInflater 是一个抽象类,在文档中如下声明: public abstract class LayoutInflater extends Object 获得 LayoutInflater 实例的三种方式 LayoutInflater inflater = getLayoutInflater(); //调用Activity的getLayoutInflater() LayoutInflater localinflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LayoutInflater inflater =

Android px转换dp的工具类

纵饮孤独 提交于 2020-02-29 17:38:19
public final class UIUtil { public static int dip2px ( Context context , double dpValue ) { float density = context . getResources ( ) . getDisplayMetrics ( ) . density ; return ( int ) ( dpValue * density + 0.5 ) ; } public static int getScreenWidth ( Context context ) { return context . getResources ( ) . getDisplayMetrics ( ) . widthPixels ; } } 来源: CSDN 作者: 爱Fendar的小王 链接: https://blog.csdn.net/wdh1994115/article/details/104575425

设计模式—状态模式

戏子无情 提交于 2020-02-29 09:29:21
状态模式 在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。 介绍 意图: 允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。 主要解决: 对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。 何时使用: 代码中包含大量与对象状态有关的条件语句。 如何解决: 将各种具体的状态类抽象出来。 关键代码: 通常命令模式的接口中只有一个方法。而状态模式的接口中有一个或者多个方法。而且,状态模式的实现类的方法,一般返回值,或者是改变实例变量的值。也就是说,状态模式一般和对象的状态有关。实现类的方法有不同的功能,覆盖接口中的方法。状态模式和命令模式一样,也可以用于消除 if...else 等条件选择语句。 应用实例: 1、打篮球的时候运动员可以有正常状态、不正常状态和超常状态。 2、曾侯乙编钟中,'钟是抽象接口','钟A'等是具体状态,'曾侯乙编钟'是具体环境(Context)。 优点: 1、封装了转换规则。 2、枚举可能的状态,在枚举状态之前需要确定状态种类。 3、将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。 4

Spring 源码分析(八)--容器的功能扩展

北战南征 提交于 2020-02-29 05:39:11
经过前面几篇的分析,相信大家对Spring中容器功能有了简单的了解,在前面的章节中我们一直以BeanFactory接口以及它的默认实现类XmlBeanFactory为例进行分析。但是,Spring中还提供了另一个接口ApplicationContext,用于扩展BeanFactory中现有的功能。 ApplicationContext和BeanFactory两者都是用于加载Bean的,但是相比之下,ApplicationContext提供了更多的扩展功能,ApplicationContext包含了BeanFactory的所有功能。绝大多数典型的企业应用和系统,ApplicationContext就是你需要使用的。 首先看看使用这两个不同的类去加载配置文件在写法上的不同。 使用BeanFactory方式加载XML BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml")); 使用ApplicationContext方式加载XML ApplicationContext bf = new ClassPathXmlApplicationContext("beanFactoryTest.xml")); 一:整体功能分析