现在很多社交软件都有这个功能,因为本次我参加一个比赛也是要做一个社交软件,所以我就“画蛇添足”的添加了这个一个功能,因为我也是个Android初学者,所以说修改bug浪费了我至少15个小时,简直是苦逼。

废话不多少 开始;

首先 :需要的是聊天界面 ,本次不予讨论 聊天背景我是设在一个relativelayout里面 所以我只贴出这个布局的xml

1:聊天背景的XML (部分)

xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/backgroundRL"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="#eee">

2:我设置了一个确定界面 ,就是选着图片的时候确定是否是这张 这里也给出代码<?xml version="1.0" encoding="utf-8"?>

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:background="#eee" >

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_gravity="center_vertical"

android:background="#eee">

android:id="@+id/backgroundOK"

android:layout_width="100sp"

android:layout_height="wrap_content"

android:background="@drawable/btn_style_green"

android:text="确认"/>

android:id="@+id/backgroundNO"

android:layout_width="100sp"

android:layout_height="wrap_content"

android:background="@drawable/btn_style_white"

android:layout_toRightOf="@id/backgroundOK"

android:text="取消"

android:onClick="backgroundNO"/>

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_gravity="center_vertical">"

android:id="@+id/backgroundIV"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#eee" />

以上就是布局了 然后就是实现代码

3.首先我们说下思路,点击 聊天背景 按钮 -->调用系统的图库 -->选择图片-->读取图片的路径 -->在确定是否设置为背景图片的界面上显示该图片 -->点击是或否-->是则将布局文件背景修改,否则关闭当前acticity回到适当位置

以下代码为是否确认使用布局文件关联的java类

package com.feng.decipherstranger;

import java.io.FileNotFoundException;

import java.io.IOException;

import android.R.bool;

import android.R.string;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.content.ContentResolver;

import android.content.Intent;

import android.content.res.Resources;

import android.database.Cursor;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.drawable.BitmapDrawable;

import android.graphics.drawable.Drawable;

import android.net.Uri;

import android.os.Bundle;

import android.provider.MediaStore;

import android.provider.MediaStore.Images.Media;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ImageView;

import android.widget.RelativeLayout;

import android.widget.RelativeLayout.LayoutParams;

import android.widget.Toast;

public class ChatBackground extends Activity{

public static boolean isCash = false;

public static String path;

private final int RESULT_LOAD_IMAGE = 1;

private static final String IMAGE_TYPE = "image/*";

private ImageView backgroundIV;

private Button backgrooundYES;

private String iscashS;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.nothing);

//第一个调用系统图库

//Intent intent = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

intent.setType(IMAGE_TYPE);

startActivityForResult(intent,RESULT_LOAD_IMAGE);

//同时关闭nothing 不然会引起必须点击两次返回

//this.finish();

}

//重写onActivityResult方法

@SuppressLint("NewApi")

public void onActivityResult(int requestCode, int resultCode, Intent data){

super.onActivityResult(requestCode,resultCode,data);

if(requestCode==RESULT_LOAD_IMAGE&&resultCode==RESULT_OK&&data!=null){

try {

Uri selectImage = data.getData();

ContentResolver resolver = getContentResolver();

Bitmap bm = MediaStore.Images.Media.getBitmap(resolver,selectImage);

String[] filePathColumn = {MediaStore.Images.Media.DATA};

Cursor cursor = resolver.query(selectImage,

filePathColumn, null, null, null);

int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

cursor.moveToFirst();

final String picturePath = cursor.getString(columnIndex);

path = picturePath;

//将选取的图片文件指定为聊天背景

backgroundIV = (ImageView)findViewById(R.id.backgroundIV);

backgroundIV.setBackground(Drawable.createFromPath(picturePath));

} catch (FileNotFoundException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

} catch (IOException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

backgrooundYES = (Button)findViewById(R.id.backgroundOK);

backgrooundYES.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO 自动生成的方法存根

isCash = true;

/*if (isCash) {

iscashS = "iscash is true";

}

Log.i(iscashS,path);*/

//提示

Toast.makeText(getApplicationContext(),"修改成功",Toast.LENGTH_SHORT).show();

finish();

}

});

}

else {

Toast.makeText(getApplicationContext(),"没有选择图片",Toast.LENGTH_SHORT).show();

}

}

public void backgroundNO(View v){//取消 方法

this.finish();

}

}

4.然后再在自己定义的聊天界面上 把静态的图片地址path字符串和 布尔型的静态iscash传到实现聊天界面的类中 进行操作

这里贴出主要代码

if(ChatBackground.isCash){

//Log.i("chatactivity test",ChatBackground.path);

}

backgroundRL = (RelativeLayout)findViewById(R.id.backgroundRL);

backgroundRL.setBackground(Drawable.createFromPath(ChatBackground.path));

注意:好像是Android 4.3吗什么的 修改了读取文件路径的那种宏,我也不是很懂那个,反正就是读取文件和获取文件路径的方法有点不一样了。

以上

android 聊天背景图片,Android 实现从本地读取图片更改聊天背景相关推荐

  1. python批量读取图片gps位置_某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!...

    原标题:某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置! 1. python读取图片exif属性中的GPS信息 智能手机或平板如果在拍照时开启定位服务,照片中就会记录拍照位置信息和 ...

  2. cv2 和 matplotlib.pyplot 和 PIL.Image 读取图片方式对比【Python读取图片】

    文章目录 import matplotlib.pyplot as plt 和 cv2 读取图像对比 PIL 和 cv2 读取图片对比 mxnet.image.imread 读取图片 PIL 和 tor ...

  3. Java服务器上显示图片问题_java,_服务器读取图片到jsp显示问题,java - phpStudy

    服务器读取图片到jsp显示问题 我要从服务器读个图片显示到jsp jsp页面 后台 @RequestMapping(value = "getPic", method = Reque ...

  4. 服务器2012怎么换桌面背景,2012年职称计算机Windows XP:更改桌面背景和颜色

    Windows XP提供了各种桌面的颜色和背景方案,用户可以根据自己的爱好进行选择.颜 色充当桌面的最底层,背景覆盖于颜色之上. (l)桌面背景的更改 在"显示属性"对话框中,选择 ...

  5. 从oracle中读取图片,从oracle数据库中读取图片,在jsp?

    servlet:(jsp调用servlet显示图片,servlet如下) public void doGet(HttpServletRequest request, HttpServletRespon ...

  6. java 图片缓存工具,java缓存读取图片解决方案

    java缓存读取图片 老师布置了任务,需要把数据库中的图片一缓存的形式读出,不要说什么数据库中路劲,图片整体较大,在给别人使用时不现实. 关键代码:for(int i=0;i<1;i++){ d ...

  7. python如何导入图片imread_OpenCV 使用imread()函数读取图片的六种正确姿势

    经常看到有人在网上询问关于imread()函数读取图片失败的问题.今天心血来潮,经过实验,总结出imread()调用的四种正确姿势. 通常我要获取一张图片的绝对路径是这样做的:在图片上右键--属性-- ...

  8. 某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!

    1. python读取图片exif属性中的GPS信息 智能手机或平板如果在拍照时开启定位服务,照片中就会记录拍照位置信息和拍摄时间.如果将原始照片直接发送发布到网上,无意中就泄漏了自己的位置信息,有恶 ...

  9. html5图片区域剪切,HTML5 本地裁剪图片并上传至服务器(老梗)

    很多情况下用户上传的图片都需要经过裁剪,比如头像啊什么的.但以前实现这类需求都很复杂,往往需要先把图片上传到服务器,然后返回给用户,让用户确定裁剪坐标,发送给服务器,服务器裁剪完再返回给用户,来回需要 ...

最新文章

  1. CSS初识(三):CSS字体文本相关属性
  2. 【Python】《大话设计模式》Python版代码实现
  3. linux ngx listen的解析
  4. android udp 设备发现,两台Android设备之间进行UDP连接(使用多播地址)~~求大神指点...
  5. insertSelective 和 insert 的区别
  6. 2017云栖大会门票转让_「揭秘GP」云栖大会 | Greenplum 6.0 内核优化解读和7.0展望...
  7. Qt工作笔记-QHash与QMap查找速度粗略比较实战
  8. Windows:将cmd命令行添加到右键中方法
  9. java对mysql的简单操作的综合运用——登录系统
  10. python把a当作b_Python中的zip(), *zip()与zip(*zip(a,b))
  11. qgis 图片_QGIS教程09QGIS中如何制作萤火虫地图?
  12. python复制文件夹不阻塞_Python线程,线程不阻塞
  13. 阿里人告诉你毕业3年,为何技术能力相差越来越大?
  14. 宝马、奔驰、路虎、捷豹、卡宴、杜比音效DTS音乐下载
  15. Java实现学生成绩分析系统
  16. Saving Tang Monk II(bfs+优先队列)
  17. 自动化车辆的开发、测试和验证场景
  18. 观远数据带你乘云驾“务”,让决策更智能
  19. 年龄识别之AgeNet
  20. python海龟库如何导入,少儿Python编程培训手册系列之——海龟库基础用法

热门文章

  1. nlp mrc的损失是什么_田渊栋从数学上证明ICLR最佳论文“彩票假设”,强化学习和NLP也适用...
  2. Facebook传遍全球的17张励志海报
  3. c语言使用循环编写勾股数,刘徽《九章算术》中的勾股数
  4. C/C++语言函数学习(2)qsort
  5. java多线程爬虫框架crawler4j的使用
  6. Python的Pexpect库
  7. Hbase Compaction 源码分析 - CompactionChecker
  8. 四元数,欧拉角,旋转矩阵相互转换
  9. 聚焦业务价值:分众传媒在 Serverless 上的探索和实践
  10. 微信不再提供小程序打开App?借助H5为App引流的方式你必须知道!