如何实现几张图片连成一个动画效果
首先需要把连贯的几张图片放入/res/drawable-ldpi文件夹, 然后再drawable-ldpi文件夹中新建一个xml文件. 例如:anim_nv.xml
内容如下:
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <!-- 定义图片播放顺序和间隔 --> <item android:drawable="@drawable/nv1" android:duration="500"/> <item android:drawable="@drawable/nv2" android:duration="500"/> <item android:drawable="@drawable/nv3" android:duration="500"/> <item android:drawable="@drawable/nv4" android:duration="500"/> </animation-list>
java代码中调用:
ImageView iv = (ImageView)findViewById(R.id.imageView); iv.setBackgroundResource(R.drawable.anim_nv); AnimationDrawable ani = (AnimationDrawable)iv.getBackground(); ani.start();
AnimationListener监听器效果
onAnimationStart: 开始动画触发
onAnimationRepeat: 重复动画触发
onAnimationEnd: 动画结束触发
例如:
Animation animation = AnimationUtils.loadAnimation(this, R.anim.translate); animation.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { } });
Q:为什么把flv叫做流式文件格式? 和mp4,avi不是一样都是音视频的容器吗? 有什么区别?
一下是我收集的几种解释,每个人有不同的理解,把这些都看一遍,你会理解的更加清晰
要实现对容器格式的文件的在线播放,必须要服务器支持流式播放接口,例如RTSP协议
java 基础总结一
一、java虚拟机(JVM)
1、关于ClassLoader类
java程序不是一个可执行文件,它有许多独立的类文件组成,每一个类文件对应一个java类。ClassLoader包括bootstrap classloader(启动类加载器),它在JVM运行的时候加载java核心的API。这个API中就包括用户定义的ClassLoader,用户定义是指通过java程序实现的ClassLoader:一个是ExtClassLoader,一个是AppClassLoader。前一个的作用是用来加载lib/ext目录下的类,后一个的作用是用来加载用户机器上ClASSPATH设置目录中的class。
2、ClassLoader类中的一些方法
(1)、public Class<?> loadClass(String name boolean resolve)throws ClassNotFoundException
使用指定的二进制名称来加载类
(2)、
protected final Class<?> defineClass(String name, byte[] b, int off, int len) throws ClassFormatError
将一个 byte 数组转换为 class类的实例。必须分析 Class,然后才能使用它。
(3)、protected final Class<?> findSystemClass(String name)
throws ClassNotFoundException
该方法从本地文件系统装入文件。
(4)、
protected final void resolveClass(Class<?> c)链接指定的类。类加载器可以使用此方法(其名称容易使人误解)来链接类。如果已经链接类 c,则仅返回此方法。否则,该类就按《Java Language Specification》中 "Execution" 一章所描述的进行链接。
(5)、
protected final Class<?> findLoadedClass(String name)如果 Java 虚拟机已将此加载器记录为具有给定二进制名称的某个类的启动加载器,则返回该二进制名称的类。否则,返回 null。
(6)、
protected Class<?> findClass(String name) throws ClassNotFoundException使用指定的二进制名称查找类。此方法应该被类加载器的实现重写,该实现按照委托模型来加载类。在通过父类加载器检查所请求的类后,此方法将被 loadClass 方法调用。默认实现抛出一个 ClassNotFoundException。
(7)、
public static ClassLoader getSystemClassLoader()返回委托的系统类加载器。该加载器是新的 ClassLoader 实例的默认委托父类加载器,通常是用来启动应用程序的类加载器。
在运行时启动序列的早期首先调用此方法,这时会创建系统类加载器并将其设置为调用 Thread 的上下文类加载器。
默认的系统类加载器是此类的一个与实现有关的实例。
(8)、Class.forName()方法forName方法是一个静态的方法,用来加载class。
2、java中assert在什么时候会被用到?
assert可以在预计正常情况下不会到达的任何位置上放置断言。
断言可以用于验证传递给私有方法的参数,不应该用于验证传递给公有方法的参数。
也可以在非公有方法中利用断言测试后置条件。
断言不应该以任何方式改变程序的状态。