有关拍照并获取图片显示出来的问题
来源:互联网 发布:iphone7值得买吗 知乎 编辑:程序博客网 时间:2024/05/15 14:30
最近接的一个私活涉及到拍照并显示出来图片的问题,但是在写代码的过程中,自己出现了一些问题:拍照了,在图库中可以查询到图片,但是就是显示不出来,debug以后发现获取的图片为null;
然后就对整个代码进行了检查跟修改。
首先是整个界面的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拍照"
android:id="@+id/bt_photo"
/>
<TextView
android:layout_width="200dip"
android:layout_height="200dip"
android:id="@+id/tv_add"
android:layout_centerInParent="true"
/>
</RelativeLayout>
流程:点击按钮调用系统拍照功能----拍照完毕,存储图片-----在TextView上显示出图片来。
废话不多说,直接进入代码的部分:
public class MainActivity extends Activity implements OnClickListener {private Button bt_add;//拍照按钮
private int i = 0;//变量变量i
public static final int TAKE_PICTURE_ORIGINAL = 8888;//请求码
private Bitmap bitmap;//bitmap对象
private File file;//文件对象
private TextView tv_add;//要显示图片的textView
@Override
protected void onCreate(Bundle savedInstanceState) { //在这里面初始化所有的控件,并设置按钮的点击事件
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_add = (Button) findViewById(R.id.bt_photo);
bt_add.setOnClickListener(this);
tv_add = (TextView) findViewById(R.id.tv_add);
}
@Override
public void onClick(View arg0) { //实现按钮的点击事件-----在点击的时候所要做得操作是调用系统拍照的功能
// TODO Auto-generated method stub
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
file = new File("mnt/sdcard/DCIM/Camera/" + getPhotoFileName());//以这样的路径创建一个文件
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(intent, TAKE_PICTURE_ORIGINAL);
}
private String getPhotoFileName() { //以时间戳为基础的图片名字
// TODO Auto-generated method stub
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat dateFormat = new SimpleDateFormat(
"'IMG'_yyyyMMdd_HHmmss");
return dateFormat.format(date) + ".jpg";
}
既然是startActivityForResult启动的 那就得重写OnActivityResult()方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if (requestCode == TAKE_PICTURE_ORIGINAL) {
bitmap = loadBitmap(file.getPath());
Drawable drawable = new BitmapDrawable(bitmap);
tv_add.setBackground(drawable);
i++;
}
super.onActivityResult(requestCode, resultCode, data);
}
private Bitmap loadBitmap(String path) {//根据路径获得图片
// TODO Auto-generated method stub
bitmap = BitmapFactory.decodeFile(path,null);
return bitmap;
}
- 有关拍照并获取图片显示出来的问题
- 获取网页中的图片并显示出来
- Android拍照显示图片并上传遇到的诸多问题
- Android——获取系统图片/拍照/获取图片路径并显示的Demo
- Android 简单的拍照并获取图片
- 获取文件名并即时显示出来的
- Android打开摄像头拍照,并显示出来
- android 拍照及本地获取图片,并显示
- android通过拍照、相册获取图片并显示
- C#中PictureBox控件获取网络图片并显示出来
- C#中PictureBox控件获取网络图片并显示出来
- 在HTML中使用动态变量获取数据库路径的图片,并显示出来。
- python 笔记 在windows下的程序 获取图片并显示出来
- iOS拍照 相册选取 保存PNG图片到Documents下,并利用UICollectionView显示出来
- Android 拍照并显示在ImageView中(解决图片压缩失真的问题)
- 图片显示不出来的怪问题
- 如何让前端获取到硬盘上的图片并显示出来,不是项目中保存的图片
- 有关Yii form 显示不出来 model找不到的问题
- 网页传输乱码怎么办?
- BZOJ4385: [POI2015]Wilcze doły
- 安卓获取所有应用程序,进程
- UIScrollView极限优化:两个UIImageView循环利用
- MT6580/8321进摄像头白屏现象
- 有关拍照并获取图片显示出来的问题
- 如何锁定Xcode的头文件
- 多元函数求极值问题
- Fragment使用详解
- 阿里云ECS使用
- Android之SurfaceView学习(一)
- 字符编码全总结
- css 设置浏览器最小宽度
- Java enum(枚举)小结