重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

android视频图片,视频文件安卓

android 如何实现图片视频混合播放啊

直接上代码:

在榆次等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、网站建设、外贸网站建设 网站设计制作按需制作网站,公司网站建设,企业网站建设,成都品牌网站建设,全网营销推广,外贸网站建设,榆次网站建设费用合理。

布局文件就是两个全屏的videoview和imageview重叠

LinearLayout xmlns:android=""

android:layout_width="match_parent"

android:layout_height="match_parent"

ImageView

android:id="@+id/pictureView"

android:scaleType="fitXY"

android:layout_width="match_parent"

android:layout_height="match_parent"

/

VideoView

android:id="@+id/videoView"

android:layout_width="match_parent"

android:layout_height="wrap_content"

/

/LinearLayout

java部分:

/*

视频图片混合展示demo

*/

package com.example.administrator.hunbo;

import android.content.Context;

import android.media.MediaPlayer;

import android.net.Uri;

import android.os.Handler;

import android.os.storage.StorageManager;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.ImageView;

import android.widget.Toast;

import android.widget.VideoView;

import java.io.File;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

private VideoView videoView;

private ImageView pictureView;

boolean isPlaying = false;

private ArrayList arrayList = new ArrayListString();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

getSupportActionBar().hide();//隐藏actionBar

//初始化控件

videoView = findViewById(R.id.videoView);

pictureView = findViewById(R.id.pictureView);

//最开始两个view都是隐藏的

videoView.setVisibility(View.GONE);

pictureView.setVisibility(View.GONE);

//检测SD卡是否存在

String[] result = null;

StorageManager storageManager = (StorageManager) getSystemService(Context.STORAGE_SERVICE);

try {

Method method = StorageManager.class.getMethod("getVolumePaths");

method.setAccessible(true);

try {

result = (String[]) method.invoke(storageManager);

} catch (InvocationTargetException e) {

e.printStackTrace();

}

if (result.length  1) {

//Toast.makeText(this, "检测到U盘", Toast.LENGTH_SHORT).show();

AllFilesPath("/mnt/usb/");

playList();

} else {

Toast.makeText(this, "未检测到U盘,请在开机前插入U盘,或者重新启动此应用", Toast.LENGTH_SHORT).show();

Handler handler = new Handler();

handler.postDelayed(new Runnable() {

@Override

public void run() {

finish();

}

}, 2500);

}

} catch (Exception e) {

e.printStackTrace();

}

}

//获取所有图片视频的绝对路径到arraylist

private ArrayList AllFilesPath(String path) {

File file = new File(path);

File[] files = file.listFiles();

for (File f : files) {

if (f.getName().endsWith("jpg") || f.getName().endsWith("jpeg") || f.getName().endsWith("mp4")

|| f.getName().endsWith("avi") || f.getName().endsWith("mkv") || f.getName().endsWith("rmvb")

|| f.getName().endsWith("flv")) {

System.out.println("------------获取到了一个可用路径:"+f.getAbsolutePath());

arrayList.add(f.getAbsolutePath());//添加到arralist

} else if (f.isDirectory()) {

AllFilesPath(f.getAbsolutePath());

}

}

return arrayList;

}

//依次混合播放arralist里的图片或视频

public  int listNum;

private void playList() {

if (listNum = arrayList.size()){

finish();

//listNum = 0;

}else {

System.out.println("---------------------------收入路径---------------------------");

System.out.println("isplaying = "+isPlaying);

final File f = new File(arrayList.get(listNum).toString());

if (f.getName().endsWith("jpg") || f.getName().endsWith("jpeg")||f.getName().endsWith("png")) {

System.out.println("---------------------------添加了一张图片:"+f.getAbsolutePath());

pictureView.setVisibility(View.VISIBLE);

pictureView.setImageURI(Uri.fromFile(f));

Handler handler = new Handler();

handler.postDelayed(new Runnable() {

@Override

public void run() {

System.out.println("---------------------------播完了一张位于"+f.getAbsolutePath()+"的图片》》》》》》》》》》》》》》》》》");

pictureView.setVisibility(View.GONE);

listNum++;

playList();

}

}, 2000);//2秒后结束当前图片

} else if (f.getName().endsWith("mp4") || f.getName().endsWith("avi") || f.getName().endsWith("mkv")

|| f.getName().endsWith("rmvb") || f.getName().endsWith("flv")) {

System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~添加了一个视频"+f.getAbsolutePath());

videoView.setVideoPath(f.getAbsolutePath());

videoView.setVisibility(View.VISIBLE);//播放之前显示videoView

videoView.start();

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

@Override

public void onCompletion(MediaPlayer mp) {

System.out.println("---------------------------播完了一个位于"+f.getAbsolutePath()+"的视频《《《《《《《《《《《《《《《《《《");

videoView.setVisibility(View.GONE);//视频播放完毕后隐藏videoView

listNum++;

playList();

}

});

}

}

}

android下载图片和视频到本地,求代码,求案例

下面是android多线程下载例子截图:

package mm.shandong.com.testmultithreaddownload;

import android.app.ProgressDialog;

import android.content.Intent;

import android.net.Uri;

import android.os.Environment;

import android.os.Handler;

import android.os.Message;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.text.TextUtils;

import android.view.View;

import android.widget.EditText;

import android.widget.Toast;

import java.io.File;

import mm.shandong.com.testmultithreaddownload.thread.UpdateUIThread;

import mm.shandong.com.testmultithreaddownload.util.FileUtil;

public class TestMultiThreadDownLoadActivity extends AppCompatActivity {

ProgressDialog pb;

EditText editText;

Handler handler;

private UpdateUIThread mUpdateUIThread = null;

///文件路径

private String url =

"";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test_multi_thread_down_load);

editText = (EditText) findViewById(R.id.editText);

initHandler();

}

public void initHandler() {

handler = new Handler() {

@Override

public void handleMessage(Message msg) {

switch (msg.what) {

case FileUtil.startDownloadMeg:

pb.setMax(mUpdateUIThread.getFileSize());   //开始

break;

case FileUtil.updateDownloadMeg:

if (!mUpdateUIThread.isCompleted())   //下载进度消息

{

pb.setProgress(mUpdateUIThread.getDownloadSize());

pb.setMessage("下载速度:" +

mUpdateUIThread.getDownloadSpeed() + "k/秒    " +

"   下载百分比" + mUpdateUIThread.getDownloadPercent() + "%");

} else {

pb.setMessage("下载完成");

}

break;

case FileUtil.endDownloadMeg:

Toast.makeText(TestMultiThreadDownLoadActivity.this,

"下载完成,马上安装", Toast.LENGTH_SHORT).show();

/*apk安装界面跳转*/

String filename = FileUtil.getFileName(url);

String str = "/myfile/" + filename;

String fileName = Environment.getExternalStorageDirectory() + str;

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setDataAndType(Uri.fromFile(new File(fileName)),

"application/vnd.android.package-archive");

startActivity(intent);

break;

}

super.handleMessage(msg);

}

};

}

///开始下载软件

public void startDownLoad(View view) {

if (TextUtils.isEmpty(editText.getText().toString())) {

Toast.makeText(this, "你输入下载文件地址", Toast.LENGTH_SHORT).show();

return;

} else {

url = editText.getText().toString();

}

//启动线程初始化下载参数

mUpdateUIThread = new UpdateUIThread(handler, url,

FileUtil.setMkdir(this) + File.separator, FileUtil.getFileName(url));

pb = new ProgressDialog(this);

pb.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

pb.show();

mUpdateUIThread.start();

}

}

例子代码太长,只能给你一部分,如果想看完整例子代码,请去360手机助手下载安卓学习手册,点击里面的源码可以查看完成代码,方面快速,里面还有安卓的其它小例子,共108个。

安卓手机上有什么软件可以把视频分解成多张图片的吗?

可以把视频分解成多张图片的app很多,例如GIF快手,暴风等。

下载最新版app后安装打开所需要分解的视频,截取视频即可。也可以使用视频转换加,视频转换加是一款专业的视频转换工具,适用于安卓平台。

视频转换功能丰富而且实用,没有太多复杂的操作,可以使用这个软件来进行视频的转换和剪辑。手机内置视频剪辑器可以作为一款附加的视频处理工具去使用。

视频转换器

视频转换加App里面所有功能都是免费的,视频剪辑、视频加音乐、视频加图片、视频旋转,这些都是常规操作,大部分手机内置的剪辑器都有这些功能。

不过软件的作者为了方便使用,还是把这些基本功能汇集到了一起。而左边这一列功能,例如,视频格式转换、视频转语音、视频压缩、超级视频变声,则是这款App的核心亮点功能。

由于App里面所有的功能,软件作者都免费提供给用户使用,在开屏启动页投放了广告,获取一点收益来维护软件开发。

“android系统”的手机怎么隐藏图片和视频?

有以下方法:

把视频或者图片放进文件夹里,并且文件夹名字前面加一个【】就好了 。

也可以:下载一个文件管理软件 在里面勾选【属性】 改为隐藏

360安全卫士 ,创建私密空间 ,然后将文件夹拖进去。

其他方法补充:

方法一:使用手机自带的文件管理器可以直接在相关文件夹中直接创建“.nomedia文件夹”,与手机是否root没有关系。要注意的是创建的该文件夹默认是隐藏文件,需要在管理器中设置“显示隐藏文件”才可以看到创建好的特殊文件夹。如图:

方法二:在PC上建立一个“.nomedia文件”,然后利用数据线等方法拷贝到手机相关文件夹内。具体创建方法为,新建一个文本文档,打开后无需输入任何内容,点击左上角“文件”—“另存为”,将文件名改为.nomedia,保存类型选“所有文件”,确定保存后就顺利生成了一个“.nomedia文件”。如图:

Android 视频播放结束后显示图片

看log应该是由于没在ui线程中更新界面而导致的错误

在Activity中加上Handler试下吧

public final static int MSG_PLAY_COMPLETED = 100;

Handler mHandler = new Handler(){

public void dispatchMessage(Message msg) {

if(msg.what==MSG_PLAY_COMPLETED){

im_playend.setVisibility(View.VISIBLE);

}

};

};

然后把onCompletion()中的代码换成

mHandler.sendEmptyMessage(MSG_PLAY_COMPLETED);


当前文章:android视频图片,视频文件安卓
链接URL:http://cqcxhl.cn/article/dsssipp.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP