Camer的用法:相册+相机
来源:互联网 发布:淘宝店铺小号 编辑:程序博客网 时间:2024/06/05 14:17
package com.example.camera;
import java.io.File;
import android.support.v7.app.ActionBarActivity;
import android.app.AlertDialog;
import android.app.Fragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.CalendarContract.EventsEntity;
import android.provider.MediaStore;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.MediaController;
import android.widget.VideoView;
public class MainActivity extends ActionBarActivity {
private ImageView iv;
private ImageView iv2;
private ImageView ivs;
private VideoView vView;
private Button iResultText;
private MediaController mediaco;
private String recordedVideoFilePath;
private FrameLayout c_content;
private LinearLayout clayout;
private Button c_api;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.imageView1);
iv2 = (ImageView) findViewById(R.id.imageView2);
vView = (VideoView) findViewById(R.id.vV);
iResultText=(Button)findViewById(R.id.bofang);
clayout=(LinearLayout)findViewById(R.id.camera_layout);
c_content=(FrameLayout)findViewById(R.id.camera_content);
c_api=(Button)findViewById(R.id.cameraapi);
c_api.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
clayout.setVisibility(View.GONE);
Fragment capi=new CameraApi();
getFragmentManager().beginTransaction().replace(R.id.camera_content,capi ).addToBackStack(null).commit();
}
});
}
public void shexiang(View v){
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);//参数设置可以省略
startActivityForResult(intent, 4);
}
public void bofang(View v){
mediaco=new MediaController(this);
if(recordedVideoFilePath==null)
{
return;
}
File file=new File(recordedVideoFilePath);
if(file.exists()){
//VideoView与MediaController进行关联
vView.setVideoPath(file.getAbsolutePath());
vView.setMediaController(mediaco);
mediaco.setMediaPlayer(vView);
//让VideiView获取焦点
vView.requestFocus();
}
vView.start();
}
public void camera(View v) {
new AlertDialog.Builder(this)
.setPositiveButton("相册", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent pt=new Intent(Intent.ACTION_PICK,null);
pt.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
"image/*");
startActivityForResult(pt, 111);
dialog.dismiss();
}
})
.setNegativeButton("相机", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent pz=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
pz.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(new File(
Environment.getExternalStorageDirectory(), "xiaobin.jpg")));
startActivityForResult(pz, 2);
dialog.dismiss();
}
}).create().show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 111:
startphont(data.getData());
break;
case 2:
File temp = new File(Environment.getExternalStorageDirectory(),
"xbin.jpg");
startphont(Uri.fromFile(temp));
break;
case 3:
if (data != null) {
setPicToView(data);
}
break;
case 4:
sheshow(data.getData());
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
private void sheshow(Uri videoUri) {
//String[] projection = { MediaStore.Video.Media.DATA, MediaStore.Video.Media.SIZE };
Cursor cursor = managedQuery(videoUri, null, null, null, null);
cursor.moveToFirst();//这个必须加,否则下面读取会报错
int num = cursor.getCount();
recordedVideoFilePath = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
int recordedVideoFileSize = cursor.getInt(cursor.getColumnIndex(MediaStore.Video.Media.SIZE));
Log.i("videoFilePath", recordedVideoFilePath);
Log.i("videoSize", ""+recordedVideoFileSize);
}
private void startphont(Uri fromFile) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(fromFile, "image/*");
// 下面这个crop=true是设置在开启的Intent中设置显示的VIEW可裁剪
intent.putExtra("crop", "true");
// aspectX aspectY 是宽高的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// outputX outputY 是裁剪图片宽高
intent.putExtra("outputX", 150);
intent.putExtra("outputY", 150);
intent.putExtra("return-data", true);
iv2.setImageURI(fromFile);//资源图片
startActivityForResult(intent, 3);
}
/**
* 保存裁剪之后的图片数据
*
* @param picdata
*/
private void setPicToView(Intent picdata) {
Bundle extras = picdata.getExtras();
if (extras != null) {
Bitmap photo = extras.getParcelable("data");
Drawable drawable = new BitmapDrawable(photo);
iv.setBackgroundDrawable(drawable);//背景图片
}
}
}
0 0
- Camer的用法:相册+相机
- iOS调用系统相机和相册的详细用法
- 相机和相册的调用
- iOS 相册 相机的调用及上传
- iOS 对相机及相册的操作
- 获取相机、相册的授权状态
- iOS学习: 系统相机 相册的调用
- 调用系统的相机和相册
- swift 调用相机和相册的demo
- 调用相机相册图片的方法
- 功能齐全的相机相册Module
- iOS10 相机相册等权限的使用
- 兼容7.0的相机相册使用
- Android7.0的相机相册遇到问题
- 调用相机,相册,剪裁完成的代码
- 相机的使用 --- 拍照,相册导入
- unity3d中如何操作Depth Camer深度相机
- Android解决小米手机相机和相册的问题(适配小米手机相机和相册)
- AppManager管理Activity
- nyoj-33-蛇形填数
- 软考(软件设计师)注意事项(攻略)
- ZeroMQ总体结构
- 程序猿投资理财篇——基金投资技巧
- Camer的用法:相册+相机
- C语言中的typeof关键字
- Android ListView的Item无法响应OnItemClick的解决办法
- 使用Github Pages建独立博客
- CentOS安装伪分布Hadoop
- PowerVR 6系列架构分析
- 散列 - 数据结构 (分离链接法、开放定址法)
- LaTex撰写算法笔记并管理参考文献
- 传参和获取参数值的方法