最近做了一个小软件,想实现动态替换背景图片的效果,查找资料半天才实现哭,下面是代码:

随便给了一个ImageView,通过点击图片来更换背景

<ImageView
            android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/photo"android:src="@drawable/ic_launcher"/>

后台的实现

@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubif (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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubdialog.cancel();}}).create();dialog.show();}
//选择图片或拍完照片之后触发
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubsuper.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,有不对的地方望指出

android选择本地相册或拍照更换软件背景图片相关推荐

  1. Android获取本地相册图片

    Android获取本地相册图片 第一步设置静态权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_S ...

  2. 如何更换电脑背景图片?这样做很简单!

    案例:怎样把电脑背景图换成自己的照片? [我的电脑背景图片是系统自带的壁纸,不太好看,我想把它换成自己的照片.有没有小伙伴知道电脑怎么更换背景图片?在线求个简单的方法!] 在日常生活中,我们常常需要更 ...

  3. android点击灰色背景图片,android button按键失去焦点和点击后改变背景图片

    android button按键得到焦点和点击后改变背景图片 我也接受android不久,今天来给同学们分享一下button得到焦点和点击后改变背景图片,其实很简单就是两个事件setOnFocusCh ...

  4. 自定义更换IDEA背景图片

    自定义更换IDEA背景图片 第一步 进入IDEA ,然后一次打开 File→Settings. 接下来如图所示 第二步 点击 Background Image 如下图所示 第三步 我们就可以添加背景图 ...

  5. Android——获得本地相册(返回拍照照片)

    这里要实现类似微信选取相册的功能,其中呢,有两个功能: 1.拍照获得照片. 2.从相册中选取. 这里主界面就一个ImageView,通过获得照片来显示图片. 1.点击拍照后将调用本地摄像头拍照,并且将 ...

  6. Xamarin.Android 调用本地相册

    调用本地相册选中照片在ImageView上显示 代码: using System; using System.Collections.Generic; using System.Linq; using ...

  7. 微信小程序调用本地相册与拍照

    小程序调用相册与拍照 微信小程序提供了许多方便api给开发者使用,比如说wx. showActionSheet()调用菜单栏,wx.chooseImage()从本地相册选择图片或使用相机拍照.我们可以 ...

  8. 用c#每日更换“必应背景图片”为“桌面壁纸”

    在线工具 必应每天都会更换背景图片,都非常漂亮,有的时候还十分惊艳,同时还会根据每个地区的特色不同应用不同的图片. 下面用c#抓取必应每天的背景图片,并实现桌面壁纸的每天自动切换 实现思路 1.通过获 ...

  9. 简单两步更换idea背景图片--超级简单

    第一步安装插件 第二步更换背景图 好了讲完了 是不是已经会了,没会的话就接着往下看吧,哈哈 其实就是安装个插件的事情, 先告诉你们插件名称:Background Image Plus 1.安装插件 F ...

  10. Android之本地相册图片选取和拍照以及图片剪辑

    转载请注明出处:http://blog.csdn.net/loveyaozu/article/details/51160482 相信有很多Android开发人员在日常开发中,由于项目需求,需要我们的A ...

最新文章

  1. 背景属性的相关属性设置
  2. python怎么导入包-Python模块导入与包构建最佳实践
  3. linux下一款好用的命令行浏览器
  4. 简单实例讲解linux的module模块编译步骤
  5. 怎样将1900-01-00变成-_《转生成蜘蛛又怎样》第2集预告:人类到来,蜘蛛子遭遇大危机...
  6. java线程同步的死锁_Java基础之线程5-线程同步死锁
  7. SAP Leonardo机器学习图片相似度打分API的测试报告
  8. sql2008 sql服务_SQL即服务
  9. Leetcode--78. 子集
  10. 定义项目名称快速启动项目
  11. 宜居指数c语言,城市功能日趋完善宜居指数持续提升
  12. springboot的restful接口成功失败返回值设计
  13. python配色方案_python 生成18年写过的博客词云
  14. Oracle 数据库,远程访问 ora-12541:TNS:无监听程序
  15. 事件元素JS的event对象--知识点总结
  16. 找企业网站源码学习研究
  17. JAVA实现网页版斗地主_使用Java实现简单的斗地主案例
  18. android模拟器 adb 命令,安卓模拟器下 使用ADB命令
  19. matlab图像编码实验,数字图像处理实验和matlab程序代码数字图像处理实验.doc
  20. vue tab页面缓存处理

热门文章

  1. Flex Builder3编译时生成as
  2. 适合初学者 :用Google map street view api 实现批量下载谷歌地图街景 in python
  3. Visual Studio 2019 离线注册方法记录
  4. 计算机网络telnet命令作用,全面解析telnet命令
  5. 那些年用过的机械键盘
  6. 计算机毕业设计Java大学生科技创新项目管理系统(源码+系统+mysql数据库+lw文档)
  7. X4扭曲字体或图形 coreldraw_CorelDRAW X4案例教程上-电子教案文档.ppt
  8. android HttpClient获取json数据
  9. FAT32文件系统结构详解
  10. android 文件下载和保存