PurpleK's Studio

「今、君が好きで」


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

Android资源文件夹dpi的匹配顺序

发表于 2014-08-14   |   分类于 Android

相信对于Android适配,各个开发者都会觉得十分头疼。

今天在作values文件夹的dpi适配时,发生了一点小问题,故研究了一下dpi的匹配顺序。

测试机:nexus 4(xhdpi)

方法如下:

  1. 在res目录下创建values、values-ldpi、values-mdpi、values-hdpi、values-xhdpi、values-xxhdpi文件夹,并创建strings.xml。添加一个string资源,名为test,数据分别为empty、ldpi、mdpi、hdpi、xhdpi、xxhdpi。
  2. 用一个textview来显示该string。运行。
  3. 注释掉values-xhdpi的string。运行。
  4. 注释掉values-xxhdpi的string。运行。
  5. 注释掉values-hdpi的string。运行。
  6. 注释掉values-mdpi的string。运行。
  7. 注释掉values的string。运行。

textview显示结果的顺序如下:

  1. xhdpi
  2. xxhdpi
  3. hdpi
  4. mdpi
  5. empty
  6. ldpi
    据此结果,我认为,dpi的匹配顺序是先匹配自身的dpi,如果没有,则向大一级的dpi匹配;如果没有比自身大的dpi,则会向小一级的dpi匹配。最后才匹配values文件夹。

注意:在比ldpi大的dpi中,默认文件夹是比ldpi优先级更高的。

Mac下MySql卸载方法

发表于 2014-05-23   |   分类于 Mac

先停止所有mysql有关进程。

1
2
3
4
5
6
7
8
9
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
vim /etc/hostconfig and removed the line MYSQLCOM=-YES-
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*

给出一凸多边形的坐标,计算其面积

发表于 2014-03-13   |   分类于 杂

这条是去笔试时做的题目。当时想的太复杂。其实十分简单。

题目要求,坐标是顺时针给出。题目要求使用海伦公式来计算三角形面积。

每次添加一个点,即相当于添加了一个新的三角形。

用一个循环即可计算出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class Test {
public static double getArea( Point p1, Point p2, Point p3 ){
double a = Math.sqrt((p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y));
double b = Math.sqrt((p2.x - p3.x)*(p2.x - p3.x) + (p2.y - p3.y)*(p2.y - p3.y));
double c = Math.sqrt((p1.x - p3.x)*(p1.x - p3.x) + (p1.y - p3.y)*(p1.y - p3.y));
double p = (a + b + c) / 2;
double s = Math.sqrt(p*(p-a)*(p-b)*(p-c));
System.out.println("这是小三角形的面积 " + s);
return s;
}
public static double get(Point[] points){
double s = 0;
//每当添加一个点,相当于添加了一个三角形,把每次增加的三角形都加起来就是最后答案
for (int i = 2 ; i < points.length ; i++){
s += getArea(points[0], points[i-1], points[i]);
}
return s;
}
public static void main(String args[]) {
Point[] points = {
new Point(0, 0),
new Point(1, 0),
new Point(2, 0),
new Point(2, 1),
new Point(2, 2),
new Point(1, 2),
new Point(0, 1)
};
System.out.println(get(points));
}
}

Android中资源文件夹res/raw和assets

发表于 2013-12-28   |   分类于 Android

res/raw和assets的相同点:

  • 两者下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。

res/raw和assets的不同点:

  • res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
  • res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹。

res/raw和assets的读取方法:

  • 读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作

    1
    InputStream is = getResources().openRawResource(R.id.filename);
  • 读取assets下的文件资源,通过以下方式获取输入流来进行写操作

    1
    2
    3
    AssetManager am = null;
    am = getAssets();
    InputStream is = am.open("filename");
12
PurpleK

PurpleK

{*≧∀≦}

9 日志
5 分类
7 标签
GitHub 微博
© 2016 PurpleK
由 Hexo 强力驱动
主题 - NexT.Pisces