热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

博客中知识点梳理

1http:blog.csdn.netlfdfhlarticledetails8220729代码如下:imageView.startAnimation(welcomeAnimation)

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    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日的博客

 


推荐阅读
  • 在Effective Java第三版中,建议在方法返回类型中优先考虑使用Collection而非Stream,以提高代码的灵活性和兼容性。 ... [详细]
  • 如何高效解决Android应用ANR问题?
    本文介绍了ANR(应用程序无响应)的基本概念、常见原因及其解决方案,并提供了实用的工具和技巧帮助开发者快速定位和解决ANR问题,提高应用的用户体验。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • 如何在PHP中安装Xdebug扩展
    本文介绍了如何从PECL下载并编译安装Xdebug扩展,以及如何配置PHP和PHPStorm以启用调试功能。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • 本文详细介绍了 Java 中 org.w3c.dom.Node 类的 isEqualNode() 方法的功能、参数及返回值,并通过多个实际代码示例来展示其具体应用。此方法用于检测两个节点是否相等,而不仅仅是判断它们是否为同一个对象。 ... [详细]
  • JUC并发编程——线程的基本方法使用
    目录一、线程名称设置和获取二、线程的sleep()三、线程的interrupt四、join()五、yield()六、wait(),notify(),notifyAll( ... [详细]
  • 在Java开发中,保护代码安全是一个重要的课题。由于Java字节码容易被反编译,因此使用代码混淆工具如ProGuard变得尤为重要。本文将详细介绍如何使用ProGuard进行代码混淆,以及其基本原理和常见问题。 ... [详细]
  • IO流——字符流 BufferedReader / BufferedWriter 进行文件读写
    目录节点流、处理流读文件:BufferedReader的使用写文件:BufferedWriter的使用节点流处理流节点流和处理流的区别和联系字符流Buf ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • Kafka入门指南
    本文将详细介绍如何在CentOS 7上安装和配置Kafka,包括必要的环境准备、JDK和Zookeeper的配置步骤。 ... [详细]
author-avatar
欢乐的小码农
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有