博客中知识点梳理

简介: 1 http://blog.csdn.net/lfdfhl/article/details/8220729 代码如下: imageView.startAnimation(welcomeAnimation);  查看API可知: 所有的View的子类都有方法startAnimation()方法 2 http://blog.

1 http://blog.csdn.net/lfdfhl/article/details/8220729
代码如下:
imageView.startAnimation(welcomeAnimation); 
查看API可知:
所有的View的子类都有方法startAnimation()方法

2 http://blog.csdn.net/lfdfhl/article/details/8302457
代码如下:
public File[] getFiles(File folder, final String keyword){
  //1 得到目录和满足条件的文件
  File[] filterFiles = folder.listFiles(new FileFilter() {
   @Override
   public boolean accept(File file) {
    if (file.isFile()) {
     filesCount++;
    }
    if (file.isDirectory()) {
     foldersCount++;
    }
    if (file.isDirectory()|| (file.isFile() && file.getName().contains(keyword))) {
     return true;
    } else {
     return false;
    }

   }

  });
  //2 将1结果中的文件直接添加到集合且用目录进行迭代
  for (int i = 0; i < filterFiles.length; i++) {
   if (filterFiles[i].isFile()) {
    filesArrayList.add(filterFiles[i]);
   }
   if (filterFiles[i].isDirectory()) {
    getFiles(filterFiles[i],keyword);
   }
  }
  
  //3 返回结果
  File finalFiles[] = new File[filesArrayList.size()];
  filesArrayList.toArray(finalFiles);
  return finalFiles;
}
此处主要是递归的调用.
注意:
(1)方法getFiles(File folder, final String keyword)的第一参数是File类型的
(2)但是在递归调用时却调用了:if(filterFiles[i].isDirectory()) {getFiles(filterFiles[i],keyword);}
   疑问:getFiles()方法第一个参数是File类型,但是该处filterFiles[i].isDirectory()是一个Directory.
   这样不是参数类型不一致么:要求的是File但是传过去的是Directory???
   解答:还是没有理解到File这个类.理解:Java中操作硬盘上一个东西常常是将该东西封装成了一个File.
   即不论该东西是单个的(比如一个test.txt)还是一个文件夹我们都是将它封装成了一个File对象.即平常
   写的File file=new File(path);所以该file对象,可以是File(对应方法file.isFile())也可以是Directory
   (对应方法file.isDirectory()).注意file对象只能是其中的一种.

3 http://blog.csdn.net/lfdfhl/article/details/8239595
代码中是给ImageView一个动画,即imageView.startAnimation(animation);
但是要是把ImageView换成一个Button也是可以的.
查看API可知:
所有的View的子类都有方法startAnimation()方法
即动画是作用在一个View上的.而不是作用于View中的内容(比如ImageView中的图片).
这点需要注意理解!

4 http://blog.csdn.net/lfdfhl/article/details/8248848
代码如下:
compressAndSaveBitmapToSDCard()方法,即第159行
rawBitmap.compress(Bitmap.CompressFormat.JPEG, quality, fileOutputStream);
注意:只有当压缩为JPEG的时候quality参数才起到作用,若是PNG格式则设置无效.
因为JPEG就是所谓的"有损的"编码解码器,即意味着压缩时会丢弃数据.
顺便总结一下:
(1)改变位图的宽高
matrix.postScale(heightScale, widthScale);
Bitmap newBitmap = Bitmap.createBitmap(rawBitmap, 0, 0, rawWidth,rawWidth, matrix, true);
(2)改变位图的内存大小
rawBitmap.compress(Bitmap.CompressFormat.JPEG, quality, fileOutputStream);

5 http://blog.csdn.net/lfdfhl/article/details/8255416
第70,71行代码,即:
handler.postDelayed(updateRunnable, 1000); 
handler.sendEmptyMessage(CANCEL_RUNNABLE);
可以改进:
不用sendEmptyMessage()然后在handleMessage()中来removeCallbacks(updateRunnable);
这是种多此一举的操作
可以如下:
handler.postDelayed(updateRunnable, 1000); 
handler.removeCallbacks(updateRunnable);
这样handler就不会执行updateRunnable

6 Android图形绘制基础
http://blog.csdn.net/lfdfhl/article/details/8440260
http://blog.csdn.net/lfdfhl/article/details/8440247
小结:
自定义View的实现可以继承自View也可以继承自SurfaceView
区别:
继承自View的话,需要绘制的图形直接在onDraw()中写就是了.
继承自SurfaceView的要实现SurfaceHolder.Callback接口.
并且在该接口的surfaceCreated()方法中手动调用onDraw().

 

备注:

整理范围为:2012年11月19日-----2013年1月15日的博客

 

相关文章
|
前端开发
2023Web前端开发八股文&面试题(万字系列)——这篇就够了!
2023Web前端开发八股文&面试题(万字系列)——这篇就够了!
1588 2
|
安全
病理学知识点整理
病理学知识点整理
83 0
|
8月前
|
存储 算法 NoSQL
1.数据结构与算法开篇
1.数据结构与算法开篇
70 0
|
8月前
|
存储 编译器 C语言
牛客网刷题笔记小节(二)
牛客网刷题笔记小节(二)
|
8月前
|
数据采集 监控 数据可视化
智慧矿山知识点总结
智慧矿山知识点总结
113 0
|
8月前
|
C++
关于C++的一些小知识点
关于C++的一些小知识点
|
XML JSON 网络协议
Java核心知识点整理大全16-笔记
1. 编写远程服务接口,该接口必须继承 java.rmi.Remote 接口,方法必须抛出 java.rmi.RemoteException 异常; 2. 编写远程接口实现类,该实现类必须继承 java.rmi.server.UnicastRemoteObject 类; 3. 运行 RMI 编译器(rmic),创建客户端 stub 类和服务端 skeleton 类;
57 2
|
存储 缓存 安全
Java核心知识点整理大全5-笔记
书接上回Java核心知识点整理大全4-笔记_
85 1
|
消息中间件 存储 Kafka
Java核心知识点整理大全18-笔记
Kafka 概念 Kafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由 LinkedIn 公司开发,使用 Scala 语言编写,目前是 Apache 的开源项目。
91 1
|
8月前
|
存储 算法 搜索推荐
Java核心知识点整理大全23-笔记
Java核心知识点整理大全23-笔记
49 0