定制自己的控件

redmine定制view控件 大家好    我是‘R队’,今天要讲的是redmine二次开发中对View的控件、样式、行为进行定制改动时,需要注意的点一. 自定义控件修改View中的控件、或增加新控件,一般有以下三种方式:直接修改View文件例如:要修改Issue详情页展示的控件,可直接修改 app/views/issues/show.html.erb文件,增加控件1 <p><strong><%=... 阅读详情


  在实际开发中,经常会碰到系统控件不满足咱们的需求,需要对系统控件做一些修定制修改。这篇文章就分析一下如何去定制自己的控件。


在定制控件之前,我们需要弄清楚控件显示的过程,控件显示的过程大概可以分为以下三步:

1. 调用ViewRootImpl的requestLayout方法;//requestLayout Up to ViewRoot

2. 调用onMeasure计算所有子视图的大小;//measure all children to decide how big are the children?

3. 调用onDraw方法决定绘制的内容;//What to show?     

4. 调用onLayout方法去决定视图的位置(注意:onLayout仅在ViewGroup中被调用);// Where are the children?

5、调用dispatchDraw绘制子视图;//draw children

以上步骤的framework实现大家可以参考源码,我们从应用开发的角度来分析,暂时不接触framework代码,在View.java中有段注释,比较清楚的介绍了图像

的绘制过程,如下:

        /*
         * Draw traversal performs several drawing steps which must be executed
         * in the appropriate order:
         *
         *      1. Draw the background
         *      2. If necessary, save the canvas' layers to prepare for fading
         *      3. Draw view's content
         *      4. Draw children
         *      5. If necessary, draw the fading edges and restore layers
         *      6. Draw decorations (scrollbars for instance)
         */

ok,从上面三个步骤,我们可以发现,如果你想改变视图的大小,override onMeasure方法即可,如果您想决定显示的内容可以override onDraw方法,

如果您想修改显示的位置,可以override onLayout方法。而如果您想绘制子视图则可override dispatchDraw,这里大家可以思考一个问题,为什么不派生

onDraw方法呢?答案请参考链接http://blog.youkuaiyun.com/czh0766/article/details/5790295。

ok,知识储备已经充分了,下面实战吧,我有个需求,自定义一个listview,满足该listview有一个头始终显示头,如下图所示:


图片来源:https://code.google.com/p/android-amazing-listview/

这张图就显示了一个有head的Listview,那么怎么定制这个Listview呢,下面我们就来分析一下AmaingListview的实现方法,您可以进入上面的链接下载代码。在listview向上

或向下滑动时,head会固定住不会移动,当往上滑动listview时,如果两个head相邻,下面的head会将上面上面的head往上顶,直至消失,从相邻到消失有一个绘制过程。

这个过程就是要确定在哪儿绘制,绘制什么的过程,我们需要override  onLayout方法,override onMeasure方法,下面是AmazingListView.java中的代码:

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        if (mHeaderView != null) {
            measureChild(mHeaderView, widthMeasureSpec, heightMeasureSpec);
            mHeaderViewWidth = mHeaderView.getMeasuredWidth();
            mHeaderViewHeight = mHeaderView.getMeasuredHeight();
        }
    }

    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        if (mHeaderView != null) {
            mHeaderView.layout(0, 0, mHeaderViewWidth, mHeaderViewHeight);
            configureHeaderView(getFirstVisiblePosition());
        }
    }


根据前面的描述,onMeasure方法用来决定子视图的大小,通过AmazingListView绘制headview之前需要调用setPinnedHeaderView方法来设置

mHeaderView,代码如下:

    public void setPinnedHeaderView(View view) {
        mHeaderView = view;

        // Disable vertical fading when the pinned header is present
        // TODO change ListView to allow separate measures for top and bottom fading edge;
        // in this particular case we would like to disable the top, but not the bottom edge.
        if (mHeaderView != null) {
            setFadingEdgeLength(0);
        }
        requestLayout();
    }
      自定义的headerview一般为TextView,可以参考如下文件:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/header"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#bfb"
    android:padding="6dp"
    android:text="Header"
    android:textColor="#000"
    android:textStyle="bold" />

     其宽度会fill_parent。所以上述的onMeasure方法就是用来获得当前headview的宽度和高度,因为我们需要把headview固定在相对于listview左上角

开始的位置,所以需要覆写onLayout方法,如下:

protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        if (mHeaderView != null) {
            mHeaderView.layout(0, 0, mHeaderViewWidth, mHeaderViewHeight);
            configureHeaderView(getFirstVisiblePosition());
        }
    }
在listview滑动时,都会调用onlayout方法,
mHeaderView.layout(0, 0, mHeaderViewWidth, mHeaderViewHeight);
保证了headview的位置是固定的。

AmazingListview中比较难理解的就是configureHeaderView方法了,其实这就是前面说到的两个headview之间”顶“的操作,需要在adapter中

来决定行为,如下:

public int getPinnedHeaderState(int position) {
    	if (position < 0 || getCount() == 0) {
    		return PINNED_HEADER_GONE;
    	}
    	
    	// The header should get pushed up if the top item shown
    	// is the last item in a section for a particular letter.
    	int section = getSectionForPosition(position);
    	int nextSectionPosition = getPositionForSection(section + 1);
    	if (nextSectionPosition != -1 && position == nextSectionPosition - 1) {
    		return PINNED_HEADER_PUSHED_UP;
    	}
    	
    	return PINNED_HEADER_VISIBLE;
    }


大家可以看一下上面的注释:
// The header should get pushed up if the top item shown
    	// is the last item in a section for a particular letter.
这应该不难理解,因为head把view中的item分成了若干的section,发生顶的操作是最上面的一个item是当前section的最后一个item,即:position == nextSectionPosition - 1。在“顶的过程中”,headerview要发生向上的偏移,即y轴的起点变为负值,负值的大小有第一个元素的y坐标值和headview的差值来决定。画一个草图,不难推出计算公式。

        ok,这是一个比较典型的自定义视图的例子,可以按照这个思路,您也可以自定义视图,比如目前Android的edittext不支持字体大小的自动缩放,即auto resize,您可以根据上述描述的方法,定制一个可以根据输入的内容自动调整字体大小的控件。您还可以定制各种layout,来满足自己的布局需求,等等。后续我可以发布一些我自己定制的控件,和大家一起讨论。





29、MATLAB控件定制指南 本文详细介绍了MATLAB中各类GUI控件的深度定制技巧,包括单选按钮的图标间隙设置、复选框的互斥行为与三态模式实现、右对齐复选框的设计、编辑框的边框、插入符、滚动偏移等属性定制。通过代码示例和流程图,展示了如何灵活运用Java Swing组件和Matlab底层类实现高级控件定制,并提供了不同控件定制的对比分析与实际应用案例,帮助开发者创建更美观、更实用的MATLAB图形用户界面。 阅读详情

相关推荐

深入探究WPF的高级控件及定制技巧

实现TonyTab2017的定制化不仅仅是改变样式,还涉及编写自定义的逻辑来控制选项卡的行为。这通常需要通过使用Trigger、DataTrigger、Style和Behavior来完成。例如,为TonyTab2017编写一个行为逻辑,使得当鼠标悬浮在某个选项卡上时,能够显示一个预览的小窗口,或者弹出自定义菜单供用户操作。通过在XAML中定义Triggers,可以绑定各种事件和状态改变来激活不同的行为。

weixin_35753291的博客 773

Android定制控件

参考了网上资料,搞清三个问题: 1. 如何定制控件;2. 如何为定制控件添加新的属性;3. 如何在XML里应用。控件的定制主要有两种形式,一种是从类View派生,就像TextView等控件一样,http://developer.android.com/guide/topics/ui/custom-components.html有比较详细的解释。另外一种就是在改造现有的控件,或者由现有的多个控件组

2939

WPF控件样式全集:从基础到高级定制指南

WPF(Windows Presentation Foundation)是微软公司推出的一个用于构建Windows客户端应用程序的用户界面框架,它允许开发者通过XAML定义界面的布局与样式,使得视觉展示与业务逻辑分离,增强了代码的可维护性和可扩展性。在WPF中,样式(Style)是一个非常重要的概念,它定义了控件的外观和行为。样式在WPF中通过Style类来实现,可以包含针对控件的属性设置,例如字体、颜色、边框等。通过样式,开发者可以实现控件外观的一致性,复用设计,以及动态的界面变化。

weixin_34885746的博客 1156

自定义控件其实很简单1/12

自定义View,很多初学Android的童鞋听到这么一句话绝逼是一脸膜拜!因为在很多初学者眼里,能够自己去画一个View绝逼是一件很屌很Cool的事!但是,同样而言,自定义View对初学者来说却往往可望而不可及,可望是因为看了很多自定义View的源码好像并不难,有些自定义View甚至不足百行代码,不可及呢是因为即便看了很多文章很多类似的源码依然写不出一个霸气的View来。这时会有很多前辈告诉你多看

AigeStudio 6万+

CTreeCtrl控件定制化重绘技术指南

CTreeCtrl控件是MFC(Microsoft Foundation Classes)中用于显示和操作树形结构数据的界面元素。它提供了一个分层的视图,使用户能够通过展开和折叠节点来浏览信息。这种控件通常用于表示文件系统的目录结构、组织机构架构、或者任何需要分层展示的信息。在MFC的CTreeCtrl控件中,自定义节点图标绘制是增强用户界面的重要方式。默认情况下,CTreeCtrl使用系统提供的标准图标,但通过自定义绘制,可以实现更丰富的视觉效果。

weixin_28872035的博客 761

2026深度破解:OpenClaw开源AI框架架构与实战全景解析

2026年初,一款名为OpenClaw的开源AI Agent框架以惊人的速度席卷全球开发者社区,短短数周GitHub星标突破20万,成为史上增长最快的开源项目。本文从架构设计、核心原理、代码实现和工程实战四个维度,深度剖析OpenClaw的技术内核,帮助开发者从理解到实践,快速掌握这一革命性的AI开发框架。

fox0329的博客 2373

定制控件(一)

 By:jfan 2007-09-11MSN:yufan27209@163.comQQ群:19877329 学习asp.net也两个多月了,总觉得还是刚刚入门,为什么呢?有原因二:一、看C#基础概念二十五问可悲地发现,我对概念一知半解。二、不会写自己的控件(这是说不会定制控件,当然不是ascx 那种自定义控件)。怎么办呢?学啊,呵呵。特找了些资料,来学习学习。以下是记录学习

697

Cyclone MAX独立编程实战:从硬件接口到SAP镜像的嵌入式烧录指南

在嵌入式系统开发与量产中,固件烧录是连接软件与硬件的关键环节。其核心原理是通过特定的调试接口(如JTAG、BDM)和编程算法,将编译后的机器码写入目标处理器的非易失性存储器。这项技术的价值在于确保软件在硬件上的可靠部署,是产品功能实现和质量保证的基础,广泛应用于汽车电子、工业控制等对一致性与可靠性要求极高的领域。独立编程器(Stand-Alone Programmer)在此基础上,通过集成存储、交互界面和任务逻辑,实现了脱离PC的自动化操作,极大提升了产线效率和现场维护的便捷性。本文以Cyclone MAX

weixin_34038293的博客 467

如何自定义控件

自定义控件的三种方式:继承系统控件,组合系统控件,自定义绘制控件。如何自定义控件?1、自定义属性的声明与获取1.1分析需要的自定义属性 1.2在res/values/attrs.xml中定义自定义属性 1.3在layout的xml文件中声明使用 1.4在自定义view中的构造方法中获取使用2、测量onMeasure2.1求出子视图的个数 通过getChildCount()方法获取子view的

1047

【Python Turtle合集】有趣好玩的代码当然要分享给大家啦~(皮卡丘、玫瑰花、小黄人......)

前言 🚀 作者 :“程序员梨子” 🚀 **文章简介 **:本篇文章主要是写了利用Turtle库绘制四种不一样的图案的小程序! 🚀 **文章源码免费获取 : 为了感谢每一个关注我的小可爱💓每篇文章的项目源码都是无 偿分享滴💓👇👇👇👇 点这里蓝色这行字体自取,需要什么源码记得说标题名字哈!私信我也可! 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 正文 今天给大家介绍一个好玩儿的库,嘻嘻! Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵

TZ45678的博客 3万+

openEuler 20.03 LTS面向RK3399移植系列(3)—openEuler 20.03 LTS面向Firefly RK3399的第一个版本(Linux kernel 4.4)

任务动机:完成openEuler面向RK3399开发板的移植。 任务描述:按照固件烧写准备,固件获取,固件打包和烧写的步骤实现openEuler面向RK3399开发板的移植,整理过程和相关命令记录到文档。 1. 制作openEuler的rootfs.img 1.1 开发环境 树莓派--openEuler系统 openEuler 20.03 LTS 的内测版本镜像,下载。 1.2 具体操作 1.2.1 ssh远程连接树莓派 确定树莓派IP ssh连接 1.2.2 制作rootfs.img

火种源码的机器人技术专栏 2369

Qt定制控件列表

文章目录炫酷进度条提示框小时钟高仿excel表格多级表头表格多级表头树控件多维度折线图表格控件-蚂蚁线日历控件饼图窗体靠边自动隐藏下拉框内容定制模仿QQ上传头像菜单定制属性表格自定义windows资源管理器Qt界面设计器二次开发其他事例 本帖为持续更新帖,主要展示日常开发中各式各样的控件、复杂窗体。本帖中只包含了部分展示效果,更多展示效果后续陆续放出 原文链接:Qt定制控件列表 本帖持续更新。。。...

朝十晚八 4790

ROS2新手必看:5分钟搞定Gazebo机器人仿真环境搭建(含避坑指南)

本文为ROS2新手提供了在Gazebo中快速搭建机器人仿真环境的详细指南。内容涵盖ROS2与Gazebo的协同架构理解、基础环境配置、机器人模型构建、传感器集成以及环境创建,并包含实用的避坑指南和调试技巧,帮助开发者高效掌握物理仿真技术。

weixin_29100927的博客 430

DXUTGUI控件的定制(三)

        定制控件     DXUTGUI的控件库默认使用内置的纹理资源,这个纹理资源可以在CDXUTDialog的Init函数中指定为我们自己的纹理资源(通常可以用一个图片文件来替代)。在这个系列的第一篇中,介绍了如何使用自己的纹理资源改变整个控件库的风格。    研究CDXUTDialog的InitDefaultElements函数可以发现,DXUTGUI为每种控件定义了若干

安晓辉生涯——聚焦程序员的职业规划与成长 4668

【K8S系列】在 Kubernetes 中使用 Prometheus 进行监控的详细指南

Prometheus 是一个开源的监控和报警工具,广泛用于 Kubernetes 环境中。本文将深入探讨如何通过 Kubernetes 中的注解配置 Prometheus 的抓取设置,以高效监控服务,并确保系统的可靠性和可维护性。

颜淡慕潇 2万+

Android 13.0 SystemUI下拉状态栏背景增加高斯模糊背景

在13.0的产品开发中,发现现在很多产品都是高斯模糊背景的,这种高斯模糊背景看起来效果很不错,产品开发需要SystemUI下拉状态栏背景也是高斯模糊背景,所以就要来实现下拉状态栏高斯模糊背景

安卓兼职framework和app工程师的博客 2670

使用控件模板定制控件的观感

作者: Scott Guthrie 出处: http://blog.joycode.com/scottgu/ 【原文地址】Silverlight Tutorial Part 7: Using Control Templates to Customize a Control's Look and Feel 【原文发表日期】 Frida...

diaobian0896的博客 173

某联达OA任意用户登录漏洞复现

由于`/WebService/Lk6SyncService/DirectToOthers/GetSSOStamp.asm`j接口未作限制,导致可以通过该接口调用`admin`的`cookie`值,通过对`LoginCredence`和`LoginTimestamp`的参数修改,进而实现任意登录进去系统.

千寻的博客 1589

Xpage中对定制控件在设计视图下外观的定制

Xpage中允许我们自己去定制有特殊功能的控件 称作定制控件,定制控件有一个属性 “设计定义”,这个属性可以用来自己定义 定制控件在设计视图下的表现形式,其语法规则就是Xpage里面的语法,例如:     xmlns:xc="http://www.ibm.com/xsp

学习 1132

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

DXUTGUI控件的定制

 定制包含两个方面,整个控件库风格的定制和特定控件实例本身的定制。    我们先说整个UI风格的定制。    SDK的CUSTOMUI入手学习DXUT的。    这个例子声明了一个全局的对话框资源管理对象CDXUTDialogResourceManager g_DialogResourceManager,然后用它分别初始化三个对话框。以SampleUI对话框为例,初始化语句在InitApp函数中:

流星 1342

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【ZT】DXUTGUI控件的定制

【ZT】DXUTGUI控件的定制 From: http://blog.youkuaiyun.com/foruok/  最近在研究DXUT自带的控件库,按照SDK及例子做了些试验,总是那个固定的样子(可以看DXSDK中的例子,就是哪种效果),让人一眼就看出来界面是利用DXUTGUI实现的。我想要做出自己的效果,看来必须定制。     定制包含两个方面,整个控件库风格的定制和特定控件实例本身

曾全贵的专栏 661

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

定制 WebBrowser 控件

因为工作需要,这几天在寻找定制 WebBrowser 控件的方法。原来已经研究过一阵子,原理大概知道,基本就是实现 IDocHostUIHandler 和 IDocHostShowUI 两个接口,IE 控件会在适当的时候调用这两个接口,我只要按照帮助文档的说明设置不同的值就可以了。挂接这两个接口接口到控件中去,有两种方法:一种是通过 ICustomDoc 接口定制,代码如下: html0.Na

老翅寒暑 2278

ASP中开发有多个子控件的定制控件

在教科书上,通常举例只是简单的例子,定制控件包括子控件,也是只有一个子控件,这里我们实现一个有多个子控件的定制控件SMTextboxList,它包括三组数组成员,一个是Label值的数组,一个是TextBox值的数组,一个是标志TextBox是否Enable的数组. 1usingSystem;2usingSystem.Text;3usingSystem.Web.UI;4us...

weixin_30372371的博客 87

Qt——Qt 开发中所涉及的所有控件(基本控件、容器控件、布局控件、高级控件、其他控件、多媒体控件、定制控件)

Qt开发中提供了许多控件(Widgets)供开发者使用,用于构建图形用户界面(GUI)应用程序。

qq_57737603的博客 3862
上一篇: Android编译系统
下一篇: 移植UDT到android
jiang_lostcode
博客等级 码龄18年 45粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值