android选择本地相册或拍照更换软件背景图片
来源:互联网 发布:diy婚庆域名 编辑:程序博客网 时间:2024/05/16 17:11
最近做了一个小软件,想实现动态替换背景图片的效果,查找资料半天才实现哭,下面是代码:
随便给了一个ImageView,通过点击图片来更换背景
<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/photo" android:src="@drawable/ic_launcher" />
后台的实现
@Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.photo: showChoosePhotoDialog(); break; default: break; } } private void showChoosePhotoDialog() { CharSequence[] items = { "相册", "相机" }; AlertDialog dialog = new AlertDialog.Builder(this) .setTitle("选择图片来源") .setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub if (which == SELECT_PICTURE) { Intent intent = new Intent( MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, SELECT_CAMER); } else { Intent intent = new Intent( Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); startActivityForResult(intent, SELECT_PICTURE); } } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.cancel(); } }).create(); dialog.show(); }//选择图片或拍完照片之后触发@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { Uri uri = data.getData(); Cursor cursor = getContentResolver().query(uri, null, null, null, null);//用ContentProvider查找选中的图片 cursor.moveToFirst(); String path=cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));//获取图片的绝对路径 // 获取手机屏幕的像素 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); Resources s = getResources(); setBackGround(path,dm,s); cursor.close(); } else { Toast.makeText(DialogActivity.this, "选择图片失败,请重新选择", Toast.LENGTH_SHORT) .show(); } } //设置背景图片 public void setBackGround( String path, DisplayMetrics dm,Resources s){ File imageFile=new File(path); Drawable drawable= Drawable.createFromPath(path); BitmapDrawable bd = (BitmapDrawable) drawable; bmp = bd.getBitmap(); //压缩图片 bmp = Bitmap.createScaledBitmap(bmp, dm.widthPixels, dm.heightPixels, true); Log.i("wechat", "压缩后图片的大小" + (bmp.getByteCount()/ 1024 / 1024 ) + "M宽度为" + bmp.getWidth() + "高度为" + bmp.getHeight()); CarInsuranceActivity.layout.setBackground(new BitmapDrawable(s, bmp)); }
初学android,有不对的地方望指出
阅读全文
0 0
- android选择本地相册或拍照更换软件背景图片
- Android 项目更换头像(拍照和选择相册)
- Android调用系统相册或拍照实现头像更换
- Android拍照、相册选择
- android-显示选择本地图片或拍照
- android拍照与相册选择照片并保存本地
- Android 拍照或从本地相册选取图片
- 更换用户头像 调用手机相册或相机拍照 选择图片并裁剪
- Android开发--通过相册或拍照选择头像
- android 拍照或选择相册图片压缩上传
- Android开发--通过相册或拍照选择头像
- Android开发--通过相册或拍照选择头像
- Android开发--通过相册或拍照选择头像
- Android 拍照和相册选择
- Android调用摄像头拍照和从相册中选择(上传、更换头像)
- 本地相册选择照片或相机拍照 获取当前Window最上面的 UIViewController
- 微信小程序从本地相册选择图片或使用相机拍照之我的理解
- 拍照或从相册中选择
- Centos7搭建git服务器和gitblit管理工具
- PHP+TP框架实现使用微信图像接口
- 分治算法
- Mac 里自带的邮件客户端如何备份和恢复邮件
- discuz为何添加新分区,在前台却不显示?
- android选择本地相册或拍照更换软件背景图片
- JAVA-super关键字
- 《Effective C++》第四章:设计与声明
- jvm
- Spring中bean的作用域及Spring容器初始化的相关问题
- upstream sent too big header while reading response header from upstream
- CCUserdefault使用----------2017.6.27
- JAVA验证字段正则表达式相关
- php开启与关闭错误提示