当前位置:  互联网 iis7站长之家
本页文章导读:
    ▪自定义圆形进度条的兑现方式        自定义圆形进度条的实现方式 如何自定义圆形进度条哪,也就是替换一下进度条的图片而已。 先分析一下,系统对进度条如何定义的: 咱们一般情况下载布局文件中这么书写: //在布局文.........
    ▪ 【OpenGL4.0】GLSL-应用Subroutines选择着色器功能        【OpenGL4.0】GLSL-使用Subroutines选择着色器功能在GLSL中,subroutine是这样一种机制:它根据某个变量的值把一个函数调用和一个函数定义集合中的某一个函数定义绑定起来。在很多方面它和C语言.........
    ▪ mac下文件批量重命名的步骤(命令行)       mac下文件批量重命名的方法(命令行)网站上传的500多张图片后发现需要区分缩略图,大图,中图。但是之前上传的没有区分,无奈之下只能省事的办法了,总不能一张一张的修改吧。 写一段b.........

[1]自定义圆形进度条的兑现方式
    来源: 互联网  发布时间: 2014-02-18
自定义圆形进度条的实现方式

如何自定义圆形进度条哪,也就是替换一下进度条的图片而已。

先分析一下,系统对进度条如何定义的:

咱们一般情况下载布局文件中这么书写:




从上面可以看出,进度条的样式放在了系统的主题样式里面的,做为系统样式的一部分。

再看看这个样式文件如何定义的:

看到这里就知道,引用的图片在这里:<item name="android:indeterminateDrawable">@android:drawable/progress_small_white</item>


注意:spinner_white_16不一定就是一张纯的图片,有可能是动画。

从下面的实现方式就能知道spinner_white_16到底是不是图片:在这里明确一下,可以是图片,当然也可以使其他的,请看下面的实现

定义实现:


其实就是

把这个属性指向的资源改为你想要的就可以。

实现的三种方式:

1.指向动画的实现方式

熊猫阅读就是利用这种方式实现的:

看代码:

在res资源文件夹下的anim文件夹下创建一个动画文件:

内容如下:比如名字命名为loading.xml

每个item分别引用一张图片

引用就是这样

2.指向用颜色定义的drawable资源:


引用的时候就是使用drawble了 

当然这样也可以:


 

3.引用一个图片

drawable文件:


引用一张图片


最后总结一下,其实引用的里面,都有旋转动画,如果只引用一张图片的话,他不会旋转的。有兴趣的朋友自己可以试一下。也可以看看源码如何实现的。有什么建议请留言。


使用drawable和第二种方式一样。

需要源码的同学,加入这个群:200956440,群共享里有源码。






    
[2] 【OpenGL4.0】GLSL-应用Subroutines选择着色器功能
    来源: 互联网  发布时间: 2014-02-18
【OpenGL4.0】GLSL-使用Subroutines选择着色器功能

在GLSL中,subroutine是这样一种机制:它根据某个变量的值把一个函数调用和一个函数定义集合中的某一个函数定义绑定起来。在很多方面它和C语言中的函数指针类似。一个全局变量充当指针,用来调用函数。可以在OpenGL中设置这个变量的值,这样可以把它和多个函数定义中的一个绑定起来。subroutine中的函数定义不一定要同名,但是必须要有同等数量和相同类型的参数以及相同的返回类型

Subroutines提供了在运行时刻不用切换着色器或者是重新编译或者是使用if判断就能选择不同实现功能的方法。例如,一个着色器里面可以实现多种算法用来在场景中渲染不同的对象。当渲染场景的时候,我们可以通过改变subroutines的全局变量的值来选择合适的渲染算法而不是去通过切换着色器或者是使用条件判断来实现。

注意:由于性能在着色器中越来越重要,所以避免条件判断或着色器切换是很有必要的。有了subroutines,我们就能够在不增加计算负载的情况下实现条件判断和着色器切换的功能。


下面用一个例子来进行说明。在这个例子中,采用subroutine渲染了两次茶壶。分别采用不同的光照模型。第一次用ADS(ambient,diffuse,specular)模型进行渲染,第二次只用diffuse模型渲染。一个subroutine全局变量用来选择渲染算法。下面两幅图可以看出效果的对比。


左边是ADS模型渲染效果,右边是diffuse模型渲染效果。


下面介绍使用subroutines的步骤。

我们在vertex shader中进行subroutines的定义。

(1)首先是定义subroutine类型:

subroutine vec3 shadeModelType( vec4 position, vec3 normal);

上面的代码定义了一个新的subroutine类型,其名字是shadeModelType。其语意和函数原型很类似。它定义了一个名字,一个参数列表和返回类型,参数名不是必须的。

(2)紧接着我们定义一个上述类型的uniform变量shadeModel:

subroutine uniform shadeModelType shadeModel;

这个变量充当了函数指针的作用,它在OpenGL应用程序中将会被赋值为两个可能的函数之一。

(3)定义两个函数,作为subroutine的一部分。

它们都有一个前缀是:

subroutine( shadeModelType )

其意味着函数和subroutine类型匹配。我们使用这个前缀定义了两个函数:

(4)函数调用

在vertex shader的main函数中,我们使用subroutine的uniform变量shadeModel来调用定义的两个函数。

LightIntensity = shadeModel( eyePosition, eyeNorm );

这样,根据uniform变量shadeModel的值,这个调用会被绑定到上述我们定义的两个函数之一。

(5)给subroutine uniform变量赋值。

分两步进行。

1、使用glGetSubroutineIndex函数查询每个subroutine函数的索引。

第一个参数是程序的句柄。第二个是着色器。第三个是subroutine的名字。查询到的索引存储在两个GLuint型的值中。
2、为了选择合适的subroutine函数,我们需要给subroutine uniform变量shadeModel赋值。采用如下函数调用实现:

glUniformSubroutinesuiv( GL_VERTEX_SHADER, 1, &adsIndex);

这个函数可以一次设置多个uniform变量值。第一个参数指定着色阶段。第二个是要设定的uniform变量的数量。这里只需要设置一个uniform变量的值。

如果要设置多个,那么第三个参数应该是个数组,通常数组中的第i个元素赋值给subroutine uniform变量中索引为i的那个。

这里只需要设置一个值,我们设置的是索引为0 的那么subroutine uniform变量。

注意:OpenGL中,uniform 变量的索引默认就是从0开始的。如果有多个变量需要设置,可以用 glGetSubroutineUniformLocation()查询。 

接下来进行渲染就可以得出相应的效果了。


要进行另外一种效果的渲染只需调用下面函数:

glUniformSubroutinesuiv( GL_VERTEX_SHADER, 1, &diffuseIndex);

再进来渲染过程即可。


    
[3] mac下文件批量重命名的步骤(命令行)
    来源: 互联网  发布时间: 2014-02-18
mac下文件批量重命名的方法(命令行)
网站上传的500多张图片后发现需要区分缩略图,大图,中图。但是之前上传的没有区分,无奈之下只能省事的办法了,总不能一张一张的修改吧。

写一段bash,使用mv命令达到批量重命名的目的。



例子:我现在要把aaaaaaaaaaaaa.jpg重命名为aaaaaaaaaaaaa_MED.jpg

请使用如下命令:

for i in *.jpg;do mv "$i" "${i%.jpg}_MED.jpg" ;done

同理aaaaaaaaaaaaa_MED.jpg重命名为aaaaaaaaaaaaa_LRG.jpg的方法:

for i in *.jpg;do mv "$i" "${i%_MED.jpg}_LRG.jpg" ;done

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3