当前位置: 编程技术>移动开发
本页文章导读:
▪TextView色彩 TextView颜色
ImageView 设置选中和不选中有不同的背景时,可以在res/drawable中创建selector文件,然后设置background就可以了TextView怎样设置选中时有不同的颜色?在res/color下建立selector文件,
<.........
▪ 自己动手实现OpenGL 自己动手实现OpenGL!
OpenGL 的学习,一开始时学习API,随后是深入理解矩阵。矩阵学完之后,又回过头来去理解纹理。
最大的成就莫过于自己动手实现OpenGL。OPenGL的矩阵实现中主要遇到以下.........
▪ 回来2个日期的相差天数 返回2个日期的相差天数。
最近一直需要用到日期处理。 返回2个日期的相差天数。 /** * 获取两个日期之间的间隔天数 * @return */ public static int getGapCount(Date startDate, Date end.........
[1]TextView色彩
来源: 互联网 发布时间: 2014-02-18
TextView颜色
ImageView 设置选中和不选中有不同的背景时,可以在res/drawable中创建selector文件,然后设置background就可以了
TextView怎样设置选中时有不同的颜色?
在res/color下建立selector文件,
然后设置颜色:android:textColor="@color/text_color"
ImageView 设置选中和不选中有不同的背景时,可以在res/drawable中创建selector文件,然后设置background就可以了
TextView怎样设置选中时有不同的颜色?
在res/color下建立selector文件,
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:color="#F00"/> <item android:state_selected="false" android:color="#FFF"/> </selector>
然后设置颜色:android:textColor="@color/text_color"
[2] 自己动手实现OpenGL
来源: 互联网 发布时间: 2014-02-18
自己动手实现OpenGL!
OpenGL 的学习,一开始时学习API,随后是深入理解矩阵。矩阵学完之后,又回过头来去理解纹理。
最大的成就莫过于自己动手实现OpenGL。OPenGL的矩阵实现中主要遇到以下问题:
参考:
http://daojin.iteye.com/admin/blogs/1954425
1. 都有哪些矩阵,矩阵如何构造。
主要是三个矩阵:
1. 投影矩阵 Mp
2. 模型(视图)矩阵(实际上是一个矩阵,为方便模拟相机好理解,才分开,方便理解与学习)。 Mmodel_view
3. 视口矩阵。Mviewport
以上三个矩阵1,3 都有现成的可以使用。对于2,那么必须由开发者构造。
2. 坐标如何根据矩阵变换。
Mmodel_view * Mp
变换后除以w。得到正规化坐标。
然后再乘以ViewPort矩阵,得到屏幕坐标。
3. 裁剪。
一开始实现了1和2,对于3(裁剪)到现在也没有实现出来。但是找到了android的AGL的源代码中的裁剪部分,并理解了其中的算法。基本上的思路是,对与原来三角形与【视景体对应的正规化立方体(openGL术语,也就是x,y,z 为 -1,1 的边长为2的立方体)】求交点,得到多边形,然后多边形再转换为多个三角形存起来。
下面的博客是关于魔兽争霸地形贴图的算法,主要思想是一个方块分为中间菱形挖空的四个角。然后,根据角的个数和方位,中间进行填充。如果四个角都满的,那么就随机填一个满的进去:
下面说的1,2,4,8对应的是脚码,能结合出 其他的1~15的土块。也就是 2的4次方个。下面是一个同仁的解释:
http://www.cppblog.com/mybios/archive/2008/10/26/65076.html
[3] 回来2个日期的相差天数
来源: 互联网 发布时间: 2014-02-18
返回2个日期的相差天数。
最近一直需要用到日期处理。
返回2个日期的相差天数。
/**
* 获取两个日期之间的间隔天数
* @return
*/
public static int getGapCount(Date startDate, Date endDate) {
Calendar fromCalendar = Calendar.getInstance();
fromCalendar.setTime(startDate);
fromCalendar.set(Calendar.HOUR_OF_DAY, 0);
fromCalendar.set(Calendar.MINUTE, 0);
fromCalendar.set(Calendar.SECOND, 0);
fromCalendar.set(Calendar.MILLISECOND, 0);
Calendar toCalendar = Calendar.getInstance();
toCalendar.setTime(endDate);
toCalendar.set(Calendar.HOUR_OF_DAY, 0);
toCalendar.set(Calendar.MINUTE, 0);
toCalendar.set(Calendar.SECOND, 0);
toCalendar.set(Calendar.MILLISECOND, 0);
return (int) ((toCalendar.getTime().getTime() - fromCalendar.getTime().getTime()) / (1000 * 60 * 60 * 24));
}
//测试
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date_start = null;
Date date_end = null;
try {
date_start = sdf.parse("2013-10-16");
date_end = sdf.parse("2013-10-19");
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(getGapCount(date_start,date_end));
最近一直需要用到日期处理。
返回2个日期的相差天数。
/**
* 获取两个日期之间的间隔天数
* @return
*/
public static int getGapCount(Date startDate, Date endDate) {
Calendar fromCalendar = Calendar.getInstance();
fromCalendar.setTime(startDate);
fromCalendar.set(Calendar.HOUR_OF_DAY, 0);
fromCalendar.set(Calendar.MINUTE, 0);
fromCalendar.set(Calendar.SECOND, 0);
fromCalendar.set(Calendar.MILLISECOND, 0);
Calendar toCalendar = Calendar.getInstance();
toCalendar.setTime(endDate);
toCalendar.set(Calendar.HOUR_OF_DAY, 0);
toCalendar.set(Calendar.MINUTE, 0);
toCalendar.set(Calendar.SECOND, 0);
toCalendar.set(Calendar.MILLISECOND, 0);
return (int) ((toCalendar.getTime().getTime() - fromCalendar.getTime().getTime()) / (1000 * 60 * 60 * 24));
}
//测试
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date_start = null;
Date date_end = null;
try {
date_start = sdf.parse("2013-10-16");
date_end = sdf.parse("2013-10-19");
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(getGapCount(date_start,date_end));
最新技术文章: