怎么用Movie类播放sdcard.img 添加文件里的gif文件

怎么样把视频文件转换成GIF格式的动态图片呢?_百度知道
怎么样把视频文件转换成GIF格式的动态图片呢?
视频剪辑 月亮flv剪切器 1.26
[这个软件可将flv视频文件中的任意一段剪切出来,生成一个独立的flv视频文件。1.14版:解决了视频总时间超过279分钟后,时间错乱的问题;写入onmetadata和duration修正某些flv播放器不能拖动进度条的问题]视频转换成GIF动画软件
Ulead GIF Animator 5.05 简体中文版
[将视频转换成动画 GIF动画的工具。操作非常的简单,容易上手,你可以选择视频电影以及其一部分,然后对其剪辑以适合你的图文件或者使用者图片]直接将视频转换成Gif动画的相关软件 1、Video-AVI to GIF Converter V2.0
它可以选取视频中的一段时,设置一定的时间间隔取一帧(比如200毫秒),然后将这些帧合并成GIF动画。
2、AVI-GIF 汉化版
设置需要转换的帧数,设置每帧的延时,就可以将avi格式视频文件转换gif格式
3、 GIF Movie Gear V4.1.2 汉化版
它直接将视频全部的帧读取出来,选择需要的帧转换,删除不需要的画面,设置每帧的延时,OK了,不过操作更烦一点。这些转换,最好先用视频分割软件“Super Video Splitter V3.8_绿色汉化特别版_视频分割工具”把需转换的一段提取出来
其他类似问题
6人觉得有用
为您推荐:
用QQ影音 在播放过程中,播放界面单击鼠标右键,选择“GIF截取”来到这个界面后,您可以先选择需要截取GIF的尺寸:有大、中、小图3种选择。你可以选择起点,选择截取长度,你自己尝试几遍,还有什么不懂得就到百度文库中下载QQ影音GIF截取教程。
最简单的是QQ界面扑捉视频图像,你用播放器播放着,扑捉就行&了&
您可能关注的推广
gif格式的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁android动态加载class文件(DexClassLoader可从SD卡加载) - 推酷
android动态加载class文件(DexClassLoader可从SD卡加载)
& & & & 1、这段时间因为要做一个自定义的3Dwidget,这个widget是一个时钟,想实现的功能是可以给该widget更换皮肤(View)和交互,皮肤都是又图片和字符串组成的,但是又要考虑可能用户会选择不同的皮肤(皮肤中的某些元素不需要,又或者多添加一些元素),开始想吧,可以将所有的对象都先实例化,然后再在SD卡的配置文件中读取哪些是需要的元素,但是这样太有局限性了,一个是内存会耗费,另一个是根本就不灵活。偶然在Q群看到胡哥给的一个用.class文件创建对象的文章,那么我想可不可以在android里用动态加载的方式来切换皮肤呢?我的每个类所需要做的并不多,而且每个不同皮肤都是在另一个类(类似一个ViewGroup)中被调用,那个类几乎就不需要更改。那如果我将这些类的所必须的方法抽出来做一个接口,那么
ViewGroup中只要调用这个接口的方法即可,具体的实现由其子类实现。
& & & & 2、整理了一下思路,决定用上一个代理模式。
public interface ITest {
public void log(String content);
public class Test implements ITest {
public Test(Context context) {
getTestInstanceDynamicFromSDCard();
private void getTestInstanceDynamicFromSDCard() {
// get test instance by dynamic
public void log(String content) {
test.log(content);
ViewGroup中只要实例化Test类,调用相应的方法即可,而其具体做什么将有其内部
getTestInstanceDynamicFromSDCard所得到ITest对象实现。那么具体的问题就是如何动态加载一个类并创建其对象!
二、ClassLoader类来加载
1、看了胡哥推荐的用.class文件创建对象,于是也跟着用类似的方法来实现:
2、但是总会失败,并且报错“can't load this type of class file”查了资料后才知道是虚拟机的问题!
在使用标准
虚拟机时,我们经常自定义继承自
ClassLoader
的类加载器。然后通过
defineClass
方法来从一个二进制流中加载
Class。(为什么要继承
ClassLoader?如果不继承他就无法使用
defineClass方法
),但是在android的
Dalvik虚拟机里走不通,但是android有提供两个类以供使用
PathClassLoader、
DexClassLoader
DexClassLoader加载(从SD卡加载)
PathClassLoader因为路径设计到system/app,故不作考虑。
DexClassLoader可以动态加载
文件而且路径不受限制,而且根据我的需求,显然是将自己分离的类打包成jar包会很灵活,因为这样我可以指定主程序对哪个路径的jar包进行加载(便于切换资源)
3、将所有程序都编译好后,包括需要动态加载的类也放在同一主程序运行以保证程序正常,将需要动态加载的隔离开,如实现一个DemoTest,放到com.example.out包下
package com.example.
import android.util.L
import com.example.biz.IT
public class DemoTest implements ITest {
public void log(String content) {
Log.d(&example&, content);
4、导出成jar包(eclipse直接右击该类export-&java-&jar file-&next-&存储目录+jar报名,不如就叫
Dynamic.jar-&finish
),此时可以将原项目中的插件部分删除咯!
5、将Dynamic。jar拷贝到
android-sdk-windows\platform-tools下将其转换成
DexClassLoader所能识别的二进制jar包:cd 到platform-tools目录下,执行命令
dx --dex --output=DynamicTest.jar Dynamic.jar&
DynamicTest.jar为新的jar包,是我们所需要的二进制jar包,
Dynamic.jar 为eclipse直接导出的jar包
DynamicTest.jar拷贝到SD卡,例如:..
/sbclock/DynamicTest.jar
7、程序实现动态加载:
package com.example.
import android.app.A
import android.os.B
import com.example.biz.IT
import com.example.biz.T
public class MainActivity extends Activity {
private ITest mT
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTest = new Test(this);
protected void onDestroy() {
mTest.log(&it is just a test&);
super.onDestroy();
&Test类动态加载:
package com.example.
import java.io.F
import java.lang.reflect.C
import dalvik.system.DexClassL
import android.annotation.SuppressL
import android.content.C
public class Test implements ITest {
private ITest mT
private Context mC
private String mJarP
private String mClassN
public Test(Context context) {
mContext =
getTestInstanceDynamicFromSDCard();
@SuppressLint(&NewApi&)
private void getTestInstanceDynamicFromSDCard() {
// get test instance by dynamic
mJarPath = android.os.Environment.getExternalStorageDirectory()
.getAbsolutePath() + &/sbclock/DynamicTest.jar&;// 前半部分为获得SD卡的目录
mClassName = &com.example.out.DemoTest&;//和导出之前的包名和类名保持一致
File dexOutputDir = mContext.getDir(&dex&, 0);//
File file = new File(mJarPath);
DexClassLoader classLoader = new DexClassLoader(file.getAbsolutePath(),
dexOutputDir.getAbsolutePath(), null, mContext.getClassLoader());
Class&?& clazz = classLoader.loadClass(mClassName);
Constructor&?& constructor = clazz.getConstructor(new Class[] {});//得到构造器
mTest = (ITest) constructor.newInstance();//实例化
} catch (Exception e) {
e.printStackTrace();
public void log(String content) {
mTest.log(content);
8、结果,当退出该程序时确实有打印:
&D/example (28710): it is just a test
9、更换其他的实现方式,还是只需要使用这个框架,在Test类中注册一个广播,外来程序可以发送广播通过Intent将其路径名和包名传过来即可创建新的子类!
10.1、在切换成其他子类时需要注意的是子类的名称不要相同,在实践中本来想使用统一的包名和类名,结果因为其对象在程序内存中已经有了,所以不会再次创建!
10.2、导出的jar包其实就是主程序中的一部分,所以不论其类中需要导入其他的类(而该jar包不含有)也没关系,因为动态加载之后这个对象就是主程序中的一部分。
&10.3.导出的文件资源的加载可以从主程序中加载,也可以从SD卡中加载(最好是SD卡,这样就不同的jar包可以对应不同的资源了)
10.4、这应该算是一个粗略的插件框架了,如果想实现功能多的插件,那还是得将接口考虑周到!
已发表评论数()
&&登&&&录&&
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见如何用FLASH转换GIF动画?_百度知道
如何用FLASH转换GIF动画?
我用FLASH转换为GIF动画时,一个几K的FLASH转换成GIF动画文件放大到1M之大,这还是很简单的FLASH,要是复杂一点的半天都转换不完,估计也就有几十M之大的文件了,有什么办法解决吗?
用Macromedia Flash就可以直接转,或者用Magic Swf2GifMagic Swf2Gif--让Flash动画轻松转成GIF SWF格式的Flash动画有体积小、易传输等优点而深受广大网民们的喜爱,但可惜的是不少网络论坛只允许贴图片,不允许贴Flash动画。 如果你手中正有一些精彩的Flash急于和朋友们在论坛中分享,怎么办呢?不妨试试这款能够将SWF文件转换成GIF文件的Magic Swf2Gif吧! 该工具不但可以快速高效地将SWF格式的Flash动画转换为GIF动画图片,而且在转换之后还能完整地保持原Flash动画中的动画帧数和分辨率。 第一步:导入SWF 动画文件 点击软件界面中的“Add Files”按钮,在弹出的对话框中选择需要转换的Flash动画文件,在添加文件时可以一次选择多个Flash动画文件批量导入,当然也可以点击“Add DIR”按钮将某个目录下的SWF文件全部导入。 在导入文件时有一个特色,那就是除了可以添加文件和目录之外,还可以在点击“IE Cache”按钮后直接将IE缓存中的SWF文件添加进列表中。 第二步:截取要转换的动画片段 在SWF文件列表中,选择一个Flash动画。这时我们可以看到原来的“文件信息”按钮已经显示为“W:500,H:400,T:2496,R:25”字样,如图所示,这是什么意思呢?点一下按钮你就知道了。原来,这表示该Flash动画的宽度为500像素,高度为400像素,总帧数为2496帧,帧频为25帧/秒。 现在需要设置欲转换动画的起止点,以去掉自己不想要的开始或结尾片段。在右边的播放框中,拖动下方滑块或者用播放按钮将Flash动画停留在转换部分的起始处(如第1000帧),随后点击动画下方的“[”按钮在此处做上起始标记。 同样,拖动滑块或者用播放按钮将Flash动画停留在转换部分的结尾处(如第1500帧),并点击“]”按钮在此处做上结束标记。 第三步:GIF动画的输出设置 点击“Options”按钮,先在“Resize”选项卡中选择生成GIF动画的图片尺寸大小,既可以选择预设的大小(默认为原始大小),也可以自定义大小,然后在“GIF Frame Rate”选项卡中设置GIF动画的帧率。 注意:当减少帧频的时候,软件将不会更改电影的播放速度,只是放弃一些帧以减小GIF文件的体积。最后切换到“目录”选项卡设置好转换后的GIF文件的输出目录。 当一切准备完毕,我们就可以点击“Convert GIF”按钮,很快即可将所选定的Flash动画片段转换为GIF格式的动画文件。 小提示:如果我们只需要抓取该Flash动画中的某一个帧,可以点击“0”按钮将当前选定的帧捕捉为一个位图文件。此答案来自百度!
其他类似问题
18人觉得有用
为您推荐:
其他1条回答
FLASH疑难问题解答
By multimedia 发表于
问:如何快捷地对齐不同Frame中的物件,包括左对齐,右对齐?
答:用 Inspector “Ctrl+Alt+I” 直接输入坐标。
或是工具栏〉〉窗口〉〉面板〉〉排列“Ctrl+K” 调出排列面板来。
问:我到现在还没研究出来,如何使一个物件谈化?
答:淡化 选中 Symbol, Modify 〉〉 Instance 〉〉Color effect 〉〉 Alpha 调整就可以了。
问:Modify菜单下的Instance常常不知为什么变成不可点击状态,请问如何才能再次激活它?
答:Instance选项只有在选定了某一对象时才能激活,若 你不选择对象,它是不可激活的。
你选中的对象必须是Symbol才行。
问:我做好的Flash放在PAGE上面以后,它老是循环,请问 怎么能够让它不进行循环?
您可能关注的推广
动画的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁首先看看GIF文件的存储结构和动画原理C&[[转]GIF图片的文件储存结构和动画原理](.cn/s/blog_jvhz.html)以及已知的两种解决方案C&Github上还算可以的开源项目C&但实际使用的时候,还是有些小问题,比如我们的GIF不全是本地已经存在的,可能是从文件加载,或者是网络下载的,这时候在使用Movie.decodeStream(InputStream is)时会遇到我的做法是统一使用Movie.decodeByteArray(byte[] b) 类方法,可以避免很多麻烦,下载 项目,并在GifMovieView中添加1234publicvoidsetMovieByteArray(byte[] bb) {mMovie = Movie.decodeByteArray(bb, 0, bb.length);requestLayout();}假如我们显示GIF的时候是异步的,那么在还没有显示时,GifMovieView不占据任何空间,完成加载后整个界面会重绘,因为GifMovieView重载的onMeasure()函数是这样子的:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748@OverrideprotectedvoidonMeasure(intwidthMeasureSpec, intheightMeasureSpec) {if(mMovie != null) {intmovieWidth = mMovie.width();intmovieHeight = mMovie.height();floatscaleH = 1f;intmeasureModeWidth = MeasureSpec.getMode(widthMeasureSpec);if(measureModeWidth != MeasureSpec.UNSPECIFIED) {intmaximumWidth = MeasureSpec.getSize(widthMeasureSpec);if(movieWidth & maximumWidth) {scaleH = (float) movieWidth / (float) maximumW}}floatscaleW = 1f;intmeasureModeHeight = MeasureSpec.getMode(heightMeasureSpec);if(measureModeHeight != MeasureSpec.UNSPECIFIED) {intmaximumHeight = MeasureSpec.getSize(heightMeasureSpec);if(movieHeight & maximumHeight) {scaleW = (float) movieHeight / (float) maximumH}}mScale = 1f / Math.max(scaleH, scaleW);mMeasuredMovieWidth = (int) (movieWidth * mScale);mMeasuredMovieHeight = (int) (movieHeight * mScale);setMeasuredDimension(mMeasuredMovieWidth, mMeasuredMovieHeight);} else{setMeasuredDimension(getSuggestedMinimumWidth(),getSuggestedMinimumHeight());}}我们知道setMeasuredDimension(int width,int height);将指定View在父容器里占据的width,和height,假如你们的业务逻辑在得到GIF文件的URL同时,还能获得它的width和height,并且这里你不希望调用requestLayout()函数重绘,做了如下修改1setMeasuredDimension(mWidth,mHeight); &这个时候可能连显示也不正常了! 可能是因为父容器判断GifMovieView大小并没有发生改变,这样的话就不调用onLayout() 和 onDraw() 函数,也就没有开始GIF的动画循环,所以就是一片空白. 有待考证.另外还有些注意点 比如API 11 之后不能使用硬件渲染:1234567/*** Starting from HONEYCOMB have to turn off HW acceleration to draw* Movie on Canvas.*/if(Build.VERSION.SDK_INT &= Build.VERSION_CODES.HONEYCOMB) {setLayerType(View.LAYER_TYPE_SOFTWARE, null);}总结: Movie的坑还是很多的,不像成品类库,相对于WebView来显示GIF的优势是轻量级,更易管理.
上一篇: 实现一个与内容合二为一的ActionBar动画效果,让你的actionbar更生动。下面是效果图: 这种效果的好处是让actionbar也成为了内容的一部分,实际应用的效果比图片展示的效果要好,除了actionbar渐渐出现的效果外,背景图片还有一种称之为 Ken Burns effect 的
下一篇: TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world" tools:context=".MainActivity" / 一直对于 tools怎么将JPG合成为GIF照片?_百度知道
怎么将JPG合成为GIF照片?
怎么将JPG的图片合成GIF的组图?需要那些软件?有没有何以网上合成的网站!~!~
提问者采纳
初学者可以使用GIF Movie Gear做。
GIF Movie Gear是一款异常小巧的GIF制作软件。仅仅2M不到的一个小软件却具备了GIF制作软件所需要的所有常见功能。另外它还可以在各种图像以及AVI文件之间随意转换。下面我们一起来领略一下GIF Movie Gear的强大功能。 动画实际上是连续的静态画面,因此在制作动画之前,我们要首先准备好动画播放过程中的一系列单帧图像。可以先利用其它平面绘图软件制作好单帧图像之后再利用GIF Movie Gear来将其制作成GIF动画。 打开GIF Movie Gear之后我们看到的主界面上有“打开”以及“插入帧”的按钮, “打开”按钮的作用等同于“文件”菜单下“导入”选项的功能。在“导入”选项之中可以看到GIF Movie Gear支持的文件格式还是相当之多的。 我们可以将这些所支持格式的图片文件合并或者制作成动态的GIF图片。 一次选择多张已经制作好的单帧图像。 导入单帧图像后的界面。此时也可以通过“帧”菜单对单帧的画面进行调整和编辑。 点击工具栏的三角形播放按钮即可预览动画。 经过预览会发现此时的动画速度过快,可以从“动画”菜单打开“属性设置”。在“全局帧”选项卡里面将播放速度设置为50每帧持续1/100秒,也就是说每帧的显示时间为50毫秒,即半秒的时间。 另外在“属性设置”的“动画”选项卡里,还可以对播放次数等做出设置,当播放次数设置为0的时候,意即循环播放。 对动画设置好之后并且预览满意之后即可保存为GIF动画。实际上GIF Movie Gear对于GIF以及图片格式的转换非常之简单,在保存的时候选择相应的格式即可。 OK!大功告成了: GIF Movie Gear亦可以直接导入AVI视频格式的文件将其转换为GIF格式,从“文件”菜单“导入”AVI文件,经过一段处理过程之后,我们可以在软件界面里看到AVI视频文件被分解成一个个单帧图像,并可以作为GIF格式预览。一般来说,为了避免生成的GIF图片文件体积过于庞大,我们只会截取极少的一部分来制作成GIF图片,选取一个片断的连续单帧,将其它的多余帧删除。 一般AVI影片的原始分辨率都比较大,在“动画”菜单选择“调整大小”,即可以对最终生成的GIF分辨率作精确调整。调整之后预览满意之后即可将文件另存为GIF格式的图片。 为了GIF图片便于浏览,我们要避免太复杂的帧数过多的图像造成图片体积过大,另外在保存之前可以利用“动画”菜单的“精简颜色”和“优化动画”两个功能来缩减GIF图片的体积。
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 手机里sdcard文件夹 的文章

 

随机推荐