自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (75)
  • 收藏
  • 关注

原创 tensorflow2.x 多层自编码器

import osimport tensorflow as tfimport numpy as npfrom tensorflow import kerasfrom PIL import Imagefrom matplotlib import pyplot as plt“”"------------------------------多层自编码器-------------------------------"""tf.random.set_seed(22)np.ra

2020-12-17 15:01:23 345

原创 tensorflow2.x RNN进行情感分析

使用RNN(循环神经网络)对电影评论进行情感分析,结果为positive或negative,分别代表积极和消极的评论。至于为什么使用RNN而不是普通的前馈神经网络,是因为RNN能够存储序列单词信息,得到的结果更为准确。使用的RNN模型架构如下上代码:import osimport tensorflow as tfimport numpy as npfrom tensorflow import keras"""在这里我们将使用RNN(循环神经网络)对电影评论进行情感分析,结果为pos

2020-12-14 16:13:07 778 1

原创 tensorflow1.X tf.estimator.Estimator详解以及代码详细举例

简介Estimator 类,用来训练和验证 TensorFlow 模型。Estimator 对象包含了一个模型 model_fn,这个模型给定输入和参数,会返回训练、验证或者预测等所需要的操作节点。所有的输出(检查点、事件文件等)会写入到 model_dir,或者其子文件夹中。如果 model_dir 为空,则默认为临时目录。config 参数为 tf.estimator.RunConfig 对象,包含了执行环境的信息。如果没有传递 config,则它会被 Estimator 实例化,使用的是默认配

2020-12-01 08:57:23 1619 2

原创 tensorflow2.X tf.data.Dataset详解

tf.data.Dataset(variant_tensor)tf.data.Dataset.from_tensor_slicea = (1,2,3,4,5,6)aa = tf.constant(a, shape=(2,3))dataset = tf.data.Dataset.from_tensor_slices(aa)for element in dataset: print('element', element)输出:element tf.Tensor([1 2 3], sha

2020-11-24 11:56:51 1875

原创 tensorflow2.0 最详细的模型训练步骤 直接上代码

import osimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layers, optimizers, datasetsimport numpy as npimport matplotlib.pyplot as pltimport datetimedef prepare_mnist_features_and_labels(x, y): x = tf.cast(

2020-11-13 15:46:29 1687

原创 tensroflow2.X keras中回调函数Callbacks大讲解

回调函数Callbacks回调函数是一组在训练的特定阶段被调用的函数集,你可以使用回调函数来观察训练过程中网络内部的状态和统计信息。通过传递回调函数列表到模型的.fit()中,即可在给定的训练阶段调用该函数集中的函数。虽然我们称之为回调“函数”,但事实上Keras的回调函数是一个类,回调函数只是习惯性称呼CallbackListkeras.callbacks.CallbackList(callbacks=[], queue_length=10)Callbackkeras.callbacks.Ca

2020-11-12 09:52:44 2820

原创 报错‘Failed to import pydot. You must `pip install pydot` and install graphviz解决

1.安装pydotpluspip install pydotplus 2.安装graphviz下载地址:https://www2.graphviz.org/Packages/development/windows/10/cmake/Release/x64/graphviz-install-2.44.2~dev.20201107.0123-win64.exe安装的时候设置系统路径选上3.不要安装pydot和pydot_ng如果安装了这2个依然会报错...

2020-11-07 14:19:07 2255 1

原创 ResNet 残差网络详解级代码详细注释

ResNet是一种残差网络,咱们可以把它理解为一个子网络,这个子网络经过堆叠可以构成一个很深的网络。咱们可以先简单看一下ResNet的结构,之后会对它的结构进行详细介绍。为什么要引入ResNet?我们知道,网络越深,咱们能获取的信息越多,而且特征也越丰富。但是根据实验表明,随着网络的加深,优化效果反而越差,测试数据和训练数据的准确率反而降低了。这是由于网络的加深会造成梯度爆炸和梯度消失的问题。目前针对这种现象已经有了解决的方法:对输入数据和中间层的数据进行归一化操作,这种方法可以保证网络在反向传播中

2020-11-05 15:30:31 3102 1

原创 tensorflow2.0中BatchNormalization详解 代码举例说明

BatchNormalization即对所有样本归一化,典型的图片的例子,设某一层输入shape为(m, h, w, c),其中m为样本数,h为高,w为宽,c为通道数,应用公式(x-mean)/std,这里的mean的shape为(c,),即对于每一个通道,使用全部样本的这个通道进行归一化。tf.keras.layers.Batchnormalization():training:布尔值,指示图层应在训练模式还是在推理模式下运行。training=True:该图层将使用当前批输入的均值和方差对其输入进

2020-10-29 10:03:28 3265 1

原创 tensorflow2.0 数字识别

import osimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import datasets, layers, optimizersimport argparseimport numpy as npfrom network_mode import VGG16os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # or any {'0',

2020-10-20 10:02:24 419

原创 神经网络中参数权重w,偏置b的作用

我们都知道,神经网络学习的本质,其实就是利用损失函数来对权重参数w的不停迭代更新以期达到较好的性能。y = weight*x + biasbias神经元的引入使您可以沿输入轴水平(左/右)移动传递函数曲线,同时保持形状/曲率不变。这将允许网络产生与默认值不同的任意输出,因此您可以自定义/更改输入到输出的映射以适合您的特定需求。bias可以上下移动线以更好地将预测与数据拟合。如果没有bias,则直线始终穿过原点(0,0),因此拟合度可能较差。...

2020-10-19 10:51:59 2241 3

原创 交叉熵损失函数CategoricalCrossentropy 和 categorical_crossentropy

CategoricalCrossentropy 和 categorical_crossentropy 都是类别交叉熵损失函数,前者是类的实现形式,后者是函数的实现形式。CategoricalCrossentropy 调用的还是categorical_crossentropy 的实现。y_true = [[0, 1, 0], [0, 0, 1]]y_pred = [[0.05, 0.95, 0], [0.1, 0.8, 0.1]]loss = tf.keras.losses.categorical_cr

2020-10-19 10:00:16 3528 1

原创 什么是损失函数?什么是梯度

什么是损失函数?损失函数就一个具体的样本而言,模型预测的值与真实值之间的差距。对于一个样本(xi,yi)其中yi为真实值,而f(xi)为我们的预测值。使用损失函数L(f(xi),yi)来表示真实值和预测值之间的差距。两者差距越小越好,最理想的情况是预测值刚好等于真实值。什么是梯度?百度上面:梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。梯度下降:简单说就是从山顶上找一个最快,最陡峭的路

2020-10-19 09:59:22 4361

原创 tensorflow2.0 简单代码实现模型训练

import random"""1.做最简单的模型训练模型。设g(a, x)=a*(x**2+x),我们把g(a, x)看成是一个模型,其中a是输入,x是变量"""def Y(a, x): return a*(x**2 + 4)"""2.这里我们设定一个最终训练好的函数,假设我们最终想把x值训练成4,那么我们有:(这个函数用来帮我们获取标签,用来计算损失值)"""def Z(a): return a*(4**2 + 4)"""3.定义学习效率"""lr = 0.01""

2020-10-11 16:29:42 1591

原创 tensroflow2.0 报错AttributeError: Tensor.name is meaningless when eager execution is enabled.解决

报错代码如下:import randomimport tensorflow as tfdef Z(a): return a*(4**2 + 4)def Y(a, x): return a*(x**2 + 4)x = tf.constant(0.0)optimizer = tf.keras.optimizers.Adam(0.01)for _ in range(500): input = random.randint(1,255) target = Z(i

2020-10-11 15:14:47 4290

原创 Fashion MNIST 数据及分类 常用的几种模型训练方式

import osimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layers, optimizers, datasetsdef prepare_mnist_features_and_labels(x, y): x = tf.cast(x, tf.float32) / 255.0 #类型转为float32 y = tf.cast(y, tf.int64) re

2020-09-29 10:30:33 1131

原创 tensorflow2.0 函数举例详解

import tensorflow as tffrom tensorflow.keras import datasets, layers, optimizers, Sequential, metricsimport numpy as np1、tf.data.Dataset.from_tensor_slices:它的作用是切分传入Tensor的第一个维度,生成相应的dataset。将输入的张量的第一个维度看做样本的个数,沿其第一个维度将tensor切片,得到的每个切片是一个样本数据。实现了输入张量

2020-09-27 17:13:48 939

原创 tensorflow2.0线性回归代码实现 代码里面注释详细

import tensorflow as tfimport numpy as npfrom tensorflow import kerasimport os#基础线性模板class Regressor(keras.layers.Layer):def __init__(self): super(Regressor, self).__init__() # here must specify shape instead of tensor ! # name

2020-09-27 17:12:21 284 1

原创 pytorch RNN:循环神经网络 代码详解 注释详细

import torchfrom torch import nn, optimfrom torch.autograd import Variablefrom torch.utils.data import DataLoaderfrom torchvision import transformsfrom torchvision import datasets# 定义超参数batch_size = 100learning_rate = 1e-3num_epoches = 2# 下载训练

2020-09-23 14:24:06 734

原创 pytorch nn.LSTM详解 代码里有详细的参数说明

nn.LSTM(in_dim, hidden_dim, n_layer, batch_first=True):LSTM循环神经网络参数:input_size: 表示的是输入的矩阵特征数hidden_size: 表示的是输出矩阵特征数num_layers 表示堆叠几层的LSTM,默认是1bias: True 或者 False,决定是否使用biasbatch_first: True 或者 False,因为nn.lstm()接受的数据输入是(序列长度,batch,输入维数),这和我们cnn输入的方式不

2020-09-23 11:05:36 5869

原创 pytorch cnn卷积神经网络代码详解 注释详细

"""---------------------cnn卷积神经网络---------------------"""import torchfrom torch import nn, optimimport torch.nn.functional as Ffrom torch.autograd import Variablefrom torch.utils.data import DataLoaderfrom torchvision import transformsfrom torchvisi

2020-09-21 14:11:23 4743 2

原创 pytorch nn.MaxPool2d 池化层深度讲解及代码举例

首先上理论:池化层是夹在连续的卷积层的中间层,池化层可以非常有效地缩小矩阵的尺寸。从而减少最后全连接层中的参数。使用池化层既可以加快计算速度也有防止过拟合问题的作用。池化层前向传播的过程中也是通过一个类似过滤器的结构完成的,池化层中的计算不是节点的加权和,而是采用了更加简单的最大值或者平均值计算。使用最大值操作的池化层被称之为最大池化层(max pooling),使用平均值操作的池化层称之为平均池化层(average pooling),总的来说,池化层的作用是可以压缩数据和参数的量, 减小过拟合。如下

2020-09-21 10:43:55 6481

原创 pytorch 前馈神经网络代码举例说明

"""@author: liaoxingyu@contact: [email protected]前馈神经网络------------------------"""import torchfrom torch import nn, optimfrom torch.autograd import Variablefrom torch.utils.data import DataLoaderfrom torchvi

2020-09-18 15:12:31 772

原创 pytorch nn.Module调用过程详解及weight和bias的值的初始化

首先说明一点:nn.Module 是所有神经网络单元(neural network modules)的基类pytorch在nn.Module中,实现了__call__方法,而在__call__方法中调用了forward函数。举例说明:x = torch.randn(2, 3) #input 2*3m = torch.nn.Linear(3, 2)#output 2*2output = m(x)print(output)输出结果: tensor([[ 0.1918, -0.1055],

2020-09-18 11:40:36 8649

原创 pytorch函数详解 附带测试demo

“”"-------------------torch 函数详解----------------------------“”"import numpy as npimport torchfrom torch.autograd import Variablefrom torch import nnimport matplotlib.pyplot as plt“”“1.torch.is_tensor(x):如果obj 是一个pytorch张量,则返回True”""x = torch.Tenso

2020-09-16 18:09:35 639

原创 pytorch 逻辑回归代码实现 里面有详细注释

"""---------------逻辑回归·----------------------------"""import torchfrom torch import nn, optimimport torch.nn.functional as Ffrom torch.autograd import Variablefrom torch.utils.data import DataLoaderfrom torchvision import transformsfrom torchvision

2020-09-16 17:16:06 197

原创 pytorch DataLoader详细介绍 代码举例说明

batch_size、iteration、epoch简介:batch_size:每批数据量的大小。深度学习通常用SGD的优化算法进行训练,也就是一次(1 个iteration)一起训练batch_size个样本,计算它们的平均损失函数值,来更新参数。iteration:1个iteration即迭代一次,也就是用batchsize个样本训练一次。epoch:1个epoch指用训练集中的全部样本训练一次,此时相当于batchsize 等于训练集的样本数。Dataloader参数详解dataset(Da

2020-09-16 16:09:25 1518 5

原创 pytorch线性回归代码实现 测试,保存,加载模型 有详细注释

"""----------------------线性回归-----------------------------"""import torchfrom torch import nn, optimfrom torch.autograd import Variableimport numpy as npimport matplotlib.pyplot as plt#1.-----首先我们需要给出一系列的点作为线性回归的数据,使用numpy来存储这些点。----x_train = np.a

2020-09-15 15:56:48 500

原创 python 读取mysql数据库 将读取的数据存到文件里面 压缩为zip文件并将zip文件发送到微信群

直接上代码:#!/usr/bin/python# _*_coding:utf-8 _*_import pymysqlimport urllib, urllib.requestimport jsonimport requestsimport zipfileimport sysdef saveAndzipFile(data, filepath, filename): file = filepath + filename print(file) with open(

2020-09-02 17:20:39 387

原创 python实现上传文件到微信群

不多废话,直接上代码:import urllib, urllib.requestimport jsonimport sysimport requestsdef gettoken(corpid, corpsecret): gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret print(gettoken_url

2020-09-02 15:39:08 1147 1

原创 乌班图 网络模为net模式 虚拟机可以ping通主机 主机ping不通虚拟机

原因是 VMware8和虚拟机的ip不在同一个网段 设置一下就行

2020-08-17 10:54:58 284

原创 在MainActivity里面创建一个Fragment对象,调用onResume的时候这个对象不为空 但是对象里的对象为空

如下:MainActivity.Java里面:public class MainActivity extends BaseActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {recentFragment = RecentFragment.newInstance(presenter);}}......... @Overrideprotected void onResume() { supe

2020-07-31 15:58:54 349

原创 Android 调用c语言库socket创建失败

项目需要写完demo,测试一下Android下面能否正常运行,尝试了几次都不正常,后面跟踪过程十分痛苦,最后经过不停的打印Log定位到居然是不能创建socket,SOCKET cs = ::socket(PF_INET, SOCK_STREAM, 0); 始终返回-1。查了一下,原来是需要在AndroidManifest.xml里面需要加一行。加上以上代码后,再次运行,完美解决问题。记得以前也碰到过这个问题,这次又碰到还跟了这么久,所以把记录一下吧...

2020-07-29 18:55:21 439

原创 Android cmakefile里面配置链接动态库和静态库时报错:missing and no known rule to make it

报错如下:* What went wrong:Execution failed for task ':app:externalNativeBuildDebug'.> Build command failed. Error while executing process D:\SDK\cmake\3.10.2.4988404\bin\cmake.exe with arguments {--build F:\AndroidProjectTest\Friend-test\app\.external

2020-07-06 16:34:12 2084

原创 android 在当前工程里面再添加一个包

1.右键app,如下图2.New—>Module,弹出以下对话框3.选择 Android Library 下一步:如上图,给新的module命名即可

2020-07-03 17:13:55 512

原创 JNI调用错误: No implementation found for ....

在Java中调用JNI接口时,出现异常,察看日志,发现有如下错误: No implementation found for boolean com.demo.AddFriendActivity.addFriend(int)检查了几遍代码,Cpp中确实定义了这个接口,而且仔细对照了Java的包名、类名,确实没有错误,那为什么会出现这种问题呢?后来在网上查资料,得到结果:JNI接口 都是以C的方...

2020-03-24 15:29:39 8894

原创 tf.multinomial用法详解

def multinomial(logits, num_samples, seed=None, name=None, output_dtype=None)logits是一个二维张量,num_samples指的是采样的个数。先上代码:a = tf.constant([1.,2.,3.,4.,5.,6.,7.,8.,9.])b = tf.reshape(a,[1,9])dede = tf....

2019-12-26 15:39:27 975

原创 tf.nn.dynamic_rnn 代码举例详解 一看就明白了

先上源码:tf.nn.dynamic_rnn( cell, inputs, sequence_length=None, initial_state=None, dtype=None, parallel_iterations=None, swap_memory=False, time_major=False, scope=No...

2019-12-25 16:59:35 1002

原创 tf.one_hot( ) axis参数详细说明

上原型:one_hot(indices, depth, on_value=None, off_value=None, axis=None, dtype=None, name=None)indices: 代表了on_value所在的索引,其他位置值为off_value。类型为tensor,其尺寸与depth共同决定输出tensor的尺寸。depth:编码深度。on_value & ...

2019-12-13 16:10:24 1449

原创 tensroflow 中矩阵简单应用

1.tensor b[:,1]中的:是啥意思?上代码:a = tf.constant([1,2,3,4,5,6,7,8])b = tf.reshape(a,[2,4])c = b[1,:]with tf.Session() as sess: print(sess.run(c))输出结果为:[5 6 7 8]再上代码:a = tf.constant([1,2,3,4,5...

2019-12-10 15:11:03 119

交叉编译libvpx源码后 生成的头文件和库 android使用

交叉编译libvpx源码后 生成的头文件和库 android使用 解压即可使用

2019-08-29

AudioRecorder实现语音录取 并转换为wav文件

实现音频的文件录制和停止,并生成pcm文件,那么暂停时将这次文件先保存下来,恢复播放后开始新一轮的录制,那么最后会生成多个pcm音频,再将这些pcm文件进行合并

2019-08-09

使用AudioRecord进行录音 获取录音字节 将字节存储为pcm文件并将pcm文件转为wav文件

使用AudioRecord进行录音 获取录音字节 将自己存储为pcm文件并将pcm文件转为wav文件 加单demo,只有3个按钮 开始录音/停止录音/文件转换 界面很简单 很适合初学者 快速了解AudioRecord录音的实现

2019-08-09

tensorflow训练过程可视化 简单代码实现

tensorflow训练过程可视化 简单代码实现 代码里面有详细说明

2019-08-05

tensorflow 简单加减运算可视化

实现a=(b+c)∗(c+2)的可视化,代码执行后。按照代码里的说明执行命令 就可以看到运算的可视化

2019-08-02

PRNet人脸特征点识别 画出识别的68个特征点

PRNet人脸特征点识别 画出识别的68个特征点 所有的数据都在里面 拿来就可以运行

2019-08-01

tensorflow模型文件转换为npy文件

tensorflow训练的mtcnn的PNet,RNet,ONet的模型文件:*.data-00000-of-00001,*.index 和 *.meta这3个文件转为npy文件

2019-07-10

tensorfolw训练mtcnn模型

tensorfolw训练mtcnn模型 里面有详细的指导文档 教你一步步操作

2019-07-10

地标训练数据

MTCNN-Tensorflow-master .zip进行模型训练的时候 需要的地标训练数据

2019-07-10

将tensorflow模型文件:*.data-00000-of-00001,*.index 和 *.meta这3个文件固化为pb文件

将tensorflow的PNet,RNet,ONet的模型文件:*.data-00000-of-00001,*.index 和 *.meta这3个文件固化为pb文件。里面详细介绍了节点名称:output_node_names如何获取。直接拿来就可以运行。可以直接看看自己模型文件的所有节点名称。代码里有详细说明

2019-07-10

PRNet人脸识别python实现 68个特征点

PRNet人脸识别python实现 68个特征点 需要的数据集也在里面 直接下载运行即可

2019-07-02

npy文件转为pb文件

npy文件转为pb文件 下载后 直接打开代码就可以运行 里面包含要转换的npy文件和已经转换好的pb文件 转换完后测试pb文件正确可用

2019-06-27

读取mnist文件转为图片

读取mnist文件转为图片 里面包含MNIST数据集文件 拿来直接运行

2019-06-19

install.zip

Caffe(CPU) vs2015 win7 编译出来的lib库和头文件,包含caffe.pb.h,caffe.lib等等

2019-06-19

Caffe(CPU)工具库编译出来的各种exe文件

Caffe(CPU)工具库编译出来的各种exe文件,包含:caffe.exe,compute_image_mean.exe,convert_imageset.exe,device_query.exe等等

2019-06-19

Caffe(GPU)编译后的头文件和lib库 直接拿来用

Caffe编译后的各种需要的x64库,还有头文件例如:caffe.pb.h,caffe.lib,caffeproto.lib等等

2019-06-18

caffe(GPU)库文件.zip

Caffe源码编译后生成的lib文件 编译工具vs2015 环境:win7(x64)

2019-06-18

convert_imageset.exe文件

tensorflow数据集转换需要用到convert_imageset.exe这个文件

2019-06-18

MTCNN python实现

MTCNN python方式简单实现人脸识别 画框画点 里面包含python类型的模型文件

2019-06-12

c++ dlib实现人脸68个特征点识别

c++ dlib实现对视频中的人脸特征点识别,并画出68个特征点。如果需要对dlib源码调试。在这下载:https://download.csdn.net/download/weixin_42713739/11195723

2019-05-24

activity上面一步一步设置需要的fragment

activity上面一步一步设置需要的fragment....

2020-07-30

java单例模式详解

java单例模式详解 简单代码实现2中单例模式 有详细的文字说明。

2020-07-21

简单代码实现一个工程2套代码

简单代码实现一个工程2套代码,支持mobile和box2套代码 在同一个工程。

2020-07-09

简单代码实现虚拟和动态代理

简单代码实现虚拟和动态代理 代码里面有详细的说明 一看就知道其中的区别 。。。。。。。。。。。。。。。。。。。。

2020-06-22

简单代码实现MVP 一看就明白

简单代码实现MVP 一看就明白

2020-06-06

简单代码实现dagger2应用

简单代码实现dagger2应用

2020-06-06

代码实现控件水平居中

简单代码实现控件水平居中,里面有详细备注说明

2020-05-18

动画 循环换位置。。

简单demo 实现动画360度循环位移 简单易懂。

2020-05-14

android 简单demo实现将c++代码 编译成静态库和动态库

android studio 简单demo实现将c++代码 编译成静态库和动态库 简单的makefile文件一看就明白

2020-03-26

activity和fragment

实现导航栏 实现同一个activity加载不同的fragment 实现fragment和acticity的消息交换

2019-11-13

Android tcp-udp socket.zip

socket实现客户端发送/接收消息 服务器接收/发送消息 支持udp客户端指定发送端口。代码简单 打开就可以运行

2019-11-13

Android socket udp/tcp实现服务器和客户端

demo实现socket的通信 包括 tcp 客户端和服务端之间的通信 udp客户端和服务端之间的通信

2019-11-12

android demo 模仿微信显示好友列表

android demo 模微信的好友列表效果,可滚动,可顶开首字母排序

2019-10-18

android简单demo listView显示好友列表

android简单demo listView显示好友列表 从文件中读取好友信息 并显示好友列表

2019-10-18

fragment互相切换 简单demo

fragment互相切换 简单demo 简单的实现了 几个fragment的互相切换 一看就明白

2019-10-18

demo教你如何实现同一个activity加载不同的fragment 同时实现activity和fragment之间的数据交换

demo教你如何实现同一个activity加载不同的fragment 同时实现activity和fragment之间的数据交换 实现在fragment上画图 画二维码 画圆等等

2019-10-14

简单demo实现类似微信导航栏RedioGroup+Viewpager 新版本androidx

简单demo实现类似微信导航栏RedioGroup+Viewpager, 4 个 tab 的导航按钮,可以切换不同的页面,这里页面使用了 ViewPager + Fragment 的组合,实现了滑动的页面效果

2019-10-10

简单demo实现类似微信导航栏RedioGroup+Viewpager

简单demo实现类似微信导航栏RedioGroup+Viewpager, 4 个 tab 的导航按钮,可以切换不同的页面,这里页面使用了 ViewPager + Fragment 的组合,实现了滑动的页面效果

2019-10-10

简单demo 说明onActivityResult()的执行时间问题

当我们调用startActivityForResult()方法来跳转页面的时候需要重写onActivityResult方法,不然就和startActivity没什么两样,这个demo就是简单说明调用时间。流程如下:MainActivity::onCreate MainActivity::onStart MainActivity::onResume Activity1::onCreate MainActivity::onStop Activity1::setResult MainActivity::onActivityResult MainActivity::onRestart MainActivity::onStart MainActivity::onResume

2019-10-09

libsodium-1.0.17.zip

libsodium源码下载 下载完就可以用 。

2019-08-28

空空如也

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

TA关注的人

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