自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

姚丹的博客

Android开发,共同交流,共同进步!

  • 博客(122)
  • 资源 (1)
  • 收藏
  • 关注

转载 android储存机制

Android系统分为内部存储和外部存储:内部存储:手机系统自带的存储,一般空间都比较小外部存储:分为手机内置外部储存和SD卡外部储存应用在安装之后,系统会自动在内部存储和外部存储,分别建立应用的私有存储区域。a. 内部存储 : data/user/0/应用包名b. 外部存储 : storage/emulated/0/android/data/应用包名内外部存储图解:了解分区存储Android 10版本中,Google推出 分区存储(scoped storage)的功能。背景:分区

2021-08-19 10:30:16 1348 1

原创 python之Excel写入数据

# xwlt是一个帮助我们写入一个excel表的库import xlwt# 创建一个excel表,编码用utf-8workbook = xlwt.Workbook(encoding="utf-8")# 创建一个excel文档中的sheet1文件worksheet = workbook.add_sheet('sheet1')# 在sheet1中的第0行,第一列写入 你好,excelworksheet.write(0, 0, "你好,excel")# 保存excle文档在本地,起名叫做movi

2021-07-08 17:32:58 328 1

原创 python之Re和正则表达式

在这里插入图片描述

2021-07-08 14:21:44 183

原创 python之Bs4的使用

Bs4是一个可以帮助我们快速解析文档,获取我想要的标签和内容的第三方库# BeautifulSoup用来解析html等文本格式# 引入bs4和reimport refrom bs4 import BeautifulSoupf = open("baidu.html", "rb")html = f.read().decode("utf-8")# html.parser指定一个解析器,代表解析html文档吗,因为BeautifulSoup不仅仅可以解析html,其他的一些文档格式也可以解析bs

2021-07-06 11:23:21 827

原创 python之爬取豆瓣Top250数据

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/7/5 9:55 下午# @Author : 姚丹# @Site : # @File : spider.py# @Software: PyCharmimport bs4 # 网页解析,获取数据import re # 正则表达式,进行文字匹配import urllib # 制定url,获取网页数据import xlwt # 进行excel操作

2021-07-05 23:46:09 117 1

原创 python之urllib的基本使用

urllib是我们用来网络请求的一个第三方库,可以制定url,获取网页数据import urllib.request# 发送一个get请求def getReq(): # 引入urllib库中的request模块 # 调用request中的urlopen方法 # timeout设置超时时间 response = urllib.request.urlopen("http://www.baidu.com", timeout=1) # 由于respon是一个对象地址

2021-07-05 23:20:40 145

原创 python之异常处理

# 捕获异常的写法格式try: f = open("test2.txt", "r")except IOError: print("捕获到 异常")# 捕获多个异常可以用括号括起来try: print(num) f = open("test2.txt", "r")except (IOError, NameError): pass # pass代表继续执行# 获取错误信息try: f = open("test2.txt", "r")excep

2021-07-05 21:12:48 59

原创 python之文件操作

# 文件操作# 写入文件# open 打开一个文件,w:代表写入模式,如果文件不存在则会新建一个文件import osfile1 = open("test.txt", "w")# file2 = open("test1.txt") # 如果没有这个文件就会报错,不存在这个文件# file2.close()file1.write("你好,文件,我要操作你了\n你好,文件,我要操作你了\n你好,文件,我要操作你了\n") # 将字符串写入文件file1.close() # 关闭文件

2021-07-04 23:37:13 89 2

原创 python之函数

# 函数# 函数的定义def funTest(): print("这是一个函数")# 函数的调用funTest()# 有参函数def sum(a, b): c = a + b print(c)sum(1, 2)# 有返回值得函数def ride(a, b): return a * bresult = ride(2, 3)print(result)# 函数返回多个值def divid(a, b): shang = a /

2021-07-04 23:08:59 78

原创 python之字典

# dict 字典,键值对列表,类似java的map集合dict1 = {"name": "张三", "age": 18, "sex": "男"}print(dict1["name"])# 如果访问一个不存在的键# print(dict1["height"]) # 会报错# 如果不确定键是否存在,可以用get来获取print(dict1.get("height")) # 返回None# 如果我们不想返回None,可以设定一个默认值print(dict1.get("height", "1

2021-07-04 22:41:57 95

原创 python之元组

# tuple 元组 和列表差不多,但是不是列表# 元祖使用小括号来包容数据,并用逗号分割# 注意:必须要有逗号tup1 = (50,)print(type(tup1)) # 这是一个元组tuple类型tup2 = (50)print(type(tup2)) # 这是一个int类型# 元组不支持修改元素# 但是元组可以拼接,形成一个新的元组tup3 = (1, 2, 3)tup4 = ("a", "b", "c")tup5 = tup3 + tup4print(tup5)#

2021-07-04 11:35:38 69

原创 person之列表

nameList = ["小王", "张三", "李四"]for i in nameList: print(i)# 通过下标打印for i in range(len(nameList)): print(nameList[i])# 列表 增加数据dataList = ["a", "b", "c"]# append 增加一个元素dataList.append("d")print(dataList)tempList = ["e", "f", "g"]# extend 代表在

2021-06-29 22:10:22 128

原创 python之字符串

# 字符串可以用单引号,双引号,三引号来表示name = 'yaodan'msg = "我是一个中国人"text = """ 窗前明月光, 疑是地上霜。 举头望明月, 低头思故乡"""print(name)print(msg)print(text)# ------------------------------------# 字符串可以当做一个数组来处理tName = "我是IT程序员"print(tName[1]) #

2021-06-21 22:20:34 102

原创 python第一次亲密接触之循环语句

# 循环语句# range(5) 表示范围:从0到5# for i in range(5):# print(i)# # range(0,10,3) 表示从0到10 每次加3执行一次# for i in range(0,10,3):# print(i)# for i in range(-10,-100,-5):# print(i)# name="yaodan"## # end 代表打印后面跟的字符# for i in name:# print(i,e

2021-06-20 22:16:22 85

原创 python3.0第一次亲密接触基本语法

python的2.0和3.0版本不兼容。python的注释用 # 和 …python如果想打印变量加字符串,不能像js或者java一样用+拼接,而是要用占位符(类似c语言),用%后面跟上对应的字符//java代码string name="小明";int age="10";println("我的名字是"+name=",我今年"+age+"岁了");# python 代码# %d:表示整数占位符# %s:表示字符串占位符a=5print("这是一个数字%d"%5)# 如果是.

2021-06-20 21:44:22 95

原创 android使用JetPack中的ViewModelSavedState保存数据

如何解决当进程被系统回收后,如何保存数据。使用ViewModel中的SavedStateHandle也可以解决这个问题。下面代码中存在的一些小知识:MutableLiveData:个人的理解就是当数据有变化时,可以通知界面更新数据首先我们创建一个页面SaveStateActivitypackage com.java.jetpackdemo.savestateimport andr...

2019-12-25 17:06:54 3591 5

原创 android模仿微信朋友圈图片预览转场缩放动画

先上效果图其实实现起来非常简单,比如现在有两个Activity:GridActivity跳转DetailActivity,首先在GridActivity跳转DetailActivity的代码上加入ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, imageVi...

2019-09-30 18:25:36 1383

原创 Vuex的基本使用

Vuex主要是实现数据持久化和组件之间数据共享的插件。使用方式,首先安装vuexnpm install vuex --save然后引入vueximport Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex);创建一个状态或者数据管理器,比如这里countvar state= { //举个例子,比如记录一个count数值...

2019-09-18 10:43:53 143

原创 Vue之带参数路由跳转

我们要使用两种跳转方式,一种是路由带参跳转,一种是get跳转首先在main.js注册路由{ path: '/News', component: News },//aid是带的参数为aid{ path: '/Content/:aid', component: Content },//使用get方式获取参数,正常注册路由就行 { path: '/PContent', componen...

2019-09-17 11:51:19 498

原创 Vue之路由简单使用

vue路由是vue的一个插件,这是vue路由文档的链接首先安装路由,npm install vue-router --save在main.js引入路由import VueRouter from 'vue-router'Vue.use(VueRouter)我引入两页面,注册到路由const routes = [ { path: '/home', component: Hom...

2019-09-17 10:46:30 165

原创 Vue之父子组件主动获取值

父组件主动获取子组件的值Vue中父组件获取子组件的数据和方法主要通过ref,首页给子组件指定ref的值,比如ref="mHeader",通过this.$refs.mHeader这句代码就能获取子组件,然后就能获取值,比如子组件title的值,就可以这样写this.$refs.mHeader.title。获取方法的写法为this.$refs.mHeader.方法名()。子组件主动获取父组件的值...

2019-09-16 17:22:11 485

原创 初识vue之父组件给子组件传值

父组件传值给子组件,主要是用props,可以传递值,方法,对象(比如自己)首先我定义一个heander.vue,用来作为home中的子组件<template> <div> <!-- title用来显示父组件传过来的值 --> <h3>{{title}}</h3> <!-- ...

2019-09-12 15:47:12 125

原创 初识vue

安装环境首先安装node.js。然后在cmd里面下命令npm install -g @vue/cli 或者用淘宝镜像cnpm install -g @vue/cli,默认选择defult就行判断安装是否完成,用vue --version,查看vue版本新建一个项目比如hello-world,用这行命令,vue create hello-world运行项目,在terminal下运行这...

2019-09-09 16:44:12 238

原创 kotlin如何写类似java的静态方法

kotlin如果想实现类似java的静态方法有两种:第一种方法:是直接创建一个kotlin文件,然后直接创建一个方法,代码如下然后在主函数直接调用fun main(array: Array<String>) { //直接调用上述fang staticMethod()}第二种方式:通过伴生对象,伴生对象一个类只能写一个,代码如下class StaticClass ...

2019-08-28 11:22:48 1230

原创 kotlin-高阶函数之自定义DSL入门

DSL:领域特定语言可以根绝自己的需求自定义扩展语言,比如我们想给某个类型的List增加一个我们自定义的方法,就可以通过下面的方式写data class PeopleBean(var name: String, var age: Int)var peopleList = listOf<PeopleBean>( PeopleBean("李丽", 41), Peop...

2019-08-21 17:00:12 631

原创 kotlin的代理和委托

其实主要是思想就是,定义一个接口,比如Person,里面有一个抽象方法walk()。然后有一个类比如Man实现了这个接口,但是不想重写想写抽象方法walk,所以就让另一个类,比如Father来重写这个抽象方法,而Father也要实现这个接口。下面是示例代码。定义一个接口Personinterface Person { fun walk()}定义一个类Father,并且实现P...

2019-08-21 14:47:54 303

原创 kotlin之函数通常使用方法

kotlin的函数可以这样写//表示传的参数为a1和a2,它们的数据类型都是Int型,这个函数返回值也是Int//fun sumOne(a1: Int, a2: Int): Int { return a1 + a2}//类似java的int sumOne(int a1, int a2) { return a1 + a2; }---------------...

2019-08-21 09:49:18 339

原创 Kotlin之lambda表达式

一开始我有点懵逼,lambda表达式是匿名函数我可以理解,可是一会是()->Unit,一会是{a:Int,b:Int->a+b}是什么鬼,后来才理解了。lambda函数其实是匿名函数另一种写法,比如求a和b的和//一般函数写法var sumTwo = fun(a1: Int, a2: Int) = a1 + a2---------------------------------...

2019-08-20 18:20:14 163 1

原创 react之redux的使用

这是上篇redux简单介绍及写法redux简单使用,场景:我们实际项目开发中可能需要多个通知,比如购物车一个数量的通知,个人信息变化的通知,那么如果写的。主要思路其实就是在入口组件,将多个通知储存合并一下就好了,具体代码示例如://这行代码用来创建储存,储存多个取值let reducers = combineReducers({ //用来计数的存储 counterRedu...

2019-06-10 19:04:59 331

原创 react使用redux实现组件间的及时通讯简单用法

首先安装redux,先下命令npm install redux --save,然后再安装npm install react-redux --save

2019-06-10 17:58:42 1417

原创 React又见路由之重定向路由

我们开发时有这么一个需求,就是在跳转个人详情,点击收藏等功能时,一定要先校验一下是否登录,如果登录再跳转个人详情等界面。那么就要在路由这一块做一下手脚我们下面的代码要做的事是,点击详情,如果已经登录就进入详情,如果没登录,就进入登录界面一、我们先写一个登录界面吧import React from 'react';import HeaderComponent from '../common/...

2019-05-09 15:18:24 2352

原创 React又见路由之子路由

我们做应用时经常需要做底部或者顶部导航切换变换页面功能,类似Android的导航+Fragment1、创业一个商城界面首页先加入路由 <Route path="/goods" component={GoodsIndex}/>import React from 'react';import HeaderComponent from '../common/header'im...

2019-05-09 12:01:51 6673

原创 react初见路由

第一种传有限参数首先创建路由创建/router/index.js文件,代码如下/* HashRouter:有#号 BrowserRouter:没有#号 Switch:只要匹配到一个地址不往下匹配,相当于for循环里面的break Link:跳转页面,相当于vue里面的router-link exact :完全匹配路由* */import React, {Fragment}...

2019-05-09 10:46:31 171

原创 React子组件显示父组件插槽里面的内容

父组件代码render() { <PortalsComponet>父组件的内容</PortalsComponet>}子组件代码export default class PortalsComponet extends Component {render() { return ( <div>子组件显示:{this.props.c...

2019-04-25 19:17:03 879

原创 react子组件给父组件传值

子组件给父组件传值:子组件的代码: render() { return ( <div> {/*当input的值改变时将子组件的值传给父组件,toFatherValue是父组件一个属性,用来接口子组件的值*/} <input onChange={(e) => { ...

2019-04-25 18:51:52 7503 1

原创 react的props和state及生命周期

this.state是异步调用

2019-04-25 18:19:54 1427

原创 React的refs和虚拟DOM的用法

让html标签原样输出,使用dangerouslySetInnerHTMLfunction App() { var name = "<span style='color: #FF0000;'>张三</span>"; return ( <div className="App"> 欢迎<span dan...

2019-04-24 17:08:47 502

原创 Android原生上下滚动控件ViewFlipper的点击事件

在网上看了很多关于ViewFipper的子View的点击事件,都不行,大家可以试试我的方法//给ViewFipper添加三个子Viewfor (int i = 0; i < 3; i++) { View view = View.inflate(mActivity, R.layout.layout_textview, null); //分别给...

2019-03-27 15:53:29 676

原创 Retrofit单独网络请求和Retrofit+RxJava网络请求示例

参考博客:https://www.jianshu.com/p/6922337b4f88这是一个关于Retrofit 注解的博客,可以看一下https://blog.csdn.net/qiang_xi/article/details/53959437这是关于Retrofit网络请求的视频:https://www.imooc.com/video/17289无Rxjava的Retrofit的...

2019-02-14 18:19:33 362

原创 初识ReactNative之布局

在ReactNative中,尺寸是没有单位的&lt;View style={{ width:100, height: 10}}&gt; &lt;Text style={{ height: 17, ...

2018-11-30 10:42:31 351

五子棋Android源码

根据教程用Android原生写的五子棋,可以实现人人对战,里面注释详细!博客地址:https://blog.csdn.net/qq_34475058/article/details/53488235

2019-03-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除