android 程序 从数据库获取的base64类型的字符串转换成图片 再通过HashMap 传进入 但是图片显示不了

android 程序 从数据库获取的base64类型的字符串转换成图片 再通过HashMap 传进入 但是图片显示不了,第1张

可以把bitmap和base64字符串来互相转换~ 从此妈妈再也不用担心我处理bitmap啦~

/

将bitmap转换成base64字符串

@param bitmap

@return base64 字符串

/

public String bitmaptoString(Bitmap bitmap, int bitmapQuality) {

// 将Bitmap转换成字符串

String string = null;

ByteArrayOutputStream bStream = new ByteArrayOutputStream();

bitmapcompress(CompressFormatPNG, bitmapQuality, bStream);

byte[] bytes = bStreamtoByteArray();

string = Base64encodeToString(bytes, Base64DEFAULT);

return string;

}

/

将base64转换成bitmap

@param string base64字符串

@return bitmap

/

public Bitmap stringtoBitmap(String string) {

// 将字符串转换成Bitmap类型

Bitmap bitmap = null;

try {

byte[] bitmapArray;

bitmapArray = Base64decode(string, Base64DEFAULT);

bitmap = BitmapFactorydecodeByteArray(bitmapArray, 0,

bitmapArraylength);

} catch (Exception e) {

eprintStackTrace();

}

return bitmap;

}

android客户端和java服务端之间可以用socket来传输。

服务器端代码:

import javaioDataInputStream;

import javaioDataOutputStream;

import javaioFileInputStream;

import javaioIOException;

import javanetInetSocketAddress;

import javanetServerSocket;

import javanetSocket;

public class Server02 {

public static void main(String[] args) {

try {

ServerSocket server = new ServerSocket(40000);

Socket socket = serveraccept();

DataInputStream dos = new DataInputStream(socketgetInputStream());

int len = dosavailable();

Systemoutprintln("len = "+len);

byte[] data = new byte[len];

dosread(data);

Systemoutprintln("data = "+data);

dosclose();

socketclose();

serverclose();

} catch (IOException e) {

eprintStackTrace();

}

}

}

客户端代码:

[java] view plaincopy

imageView02 = (ImageView)findViewById(Ridimage02);

button02 = (Button)findViewById(RidButton02);

button02setOnClickListener(new OnClickListener(){

public void onClick(View arg0) {

Socket socket;

try {

socket = new Socket("1921681203",40000);

DataOutputStream out = new DataOutputStream(socketgetOutputStream());

Bitmap bitmap = BitmapFactorydecodeResource(getResources(), Rdrawableqt);

imageView02setImageBitmap(bitmap);

ByteArrayOutputStream baos = new ByteArrayOutputStream();

//读取到ByteArrayOutputStream

bitmapcompress(BitmapCompressFormatPNG, 100, baos);

byte[] bytes = baostoByteArray();

outwrite(bytes);

Systemoutprintln("bytes--->"+bytes);

outclose();

socketclose();

} catch (UnknownHostException e) {

eprintStackTrace();

} catch (IOException e) {

eprintStackTrace();

}

}

});

}

Android中消息推送有如下几种方式:

1、轮询(Pull)方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息。2、SMS(Push)方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这种方式一般用户在经济上很难承受。3、持久连接(Push)方式:客户端和服务器之间建立长久连接,这样就可以实现消息的及时行和实时性。

消息推送,就是在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息。

关于消息推送的方式也可以使用第三方平台来帮助实现,然而极光就是一个不错的选择。极光私有云提供贴身专属定制,为您打造安全稳定高性能的私有云系统,助力企业业务升级。

//从流中还原

Image image = ImageFromStream(你获取的流);  

//显示

PictureBox pic = new PictureBox();

picImage = image;

//保存

imageSave(@"c:\picjpg");

采用MQTT协议实现Android推送功能是一种解决方案。MQTT是一个轻量级的消息发布/订阅协议,是实现基于手机客户端的消息推送服务器的理想解决方案。

常见的解决方案实现原理:

1、轮询(Pull)方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息。

2、SMS(Push)方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这种方式一般用户在经济上很难承受。

3、持久连接(Push)方式:客户端和服务器之间建立长久连接,这样就可以实现消息的及时行和实时性。

扩展资料:

推送消息注意事项:

1、支持第三方推送内容,是要客户端和服务器都支持的,客户端和服务器都导入推送SDK。

2、服务器推送内容,可以精确指定推送时间,推送的具体接收人,用户群,位置。

3、即推送的维度可以使时间,位置,人群。

4、极光使用了两种不同的通知方式,一种是推送通知,一种是推送消息。

5、如果要使用androidpn,则还需要做大量的工作,需要理解XMPP协议、理解Androidpn的实现机制,需要调试内部存在的BUG。

参考资料来源:百度百科-服务器

参考资料来源:百度百科-Android客户端

参考资料来源:百度百科-信息推送

以上就是关于android 程序 从数据库获取的base64类型的字符串转换成图片 再通过HashMap 传进入 但是图片显示不了全部的内容,包括:android 程序 从数据库获取的base64类型的字符串转换成图片 再通过HashMap 传进入 但是图片显示不了、android怎么在服务器和客户端之间传输图片、Android中消息推送有哪几种方式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9539238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存