Android中用base64转换完之后的字符串加入到url中,发现出现空指针异常,已经验证了转换之后的字符串直接打
因为太大了,一般超过2M就不要用这种方式直接存储处理图片,建议使用缩略图。
可以把bitmap图片和base64字符串来互相转换~ 从此妈妈再也不用担心我处理bitmap啦~
/**
* 将bitmap转换成base64字符串
*
* @param bitmap
* @return base64 字符串
*/
public String bitmaptoString(Bitmap bitmap, int bitmapQuality) {
// 将Bitmap转换成字符串
String string = null;
ByteArrayOutputStream bStream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, bitmapQuality, bStream);
byte[] bytes = bStream.toByteArray();
string = Base64.encodeToString(bytes, Base64.DEFAULT);
return string;
}
/**
* 将base64转换成bitmap图片
*
* @param string base64字符串
* @return bitmap
*/
public Bitmap stringtoBitmap(String string) {
// 将字符串转换成Bitmap类型
Bitmap bitmap = null;
try {
byte[] bitmapArray;
bitmapArray = Base64.decode(string, Base64.DEFAULT);
bitmap = BitmapFactory.decodeByteArray(bitmapArray, 0,
bitmapArray.length);
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}
标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。
为解决此问题,可采用一种用于URL的改进Base64编码,它不在末尾填充'='号,并将标准Base64中的“+”和“/”分别改成了“*”和“-”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。
Android中怎么在应用A中启动或安装应用B
有时候一个应用需要启动另外一个应用来完成操作,比如在某些应用中打开闹钟,相机,日历等等。启动或安装相应的应用的方法:Step1:判断是否安装目标应用。只要知道目标应用的安装包名就可以通过判断"\/data\/data\/packagename"是否存在来实现。[java] view plain copy ...
android应用中,从界面A-->B-->C,怎么返回的时候直接从C-->A?_百度...
这个有好几种方法,具体看需求吧,可以设置activity的启动模式,也可以在b->c时finish掉b,也可以在C中直接重写onKeyDown来精确控制要返回的界面。
如何在一个android工程中调用另一个android工程的代码和资源啊?_百 ...
设置工程B,右键->Properties->Android,在Library中,点击Add按钮,将A工程加入,然后Apply。此时在B中就引入了A中的资源和代码,这些资源和代码都可以直接调用。需要注意的是,因为A已经不再是一个完整的Android应用,而是一个类库工程,所以有一些内容还需要在B中配置一下。比如A中有lib库引用,则B中...
android jni b是什么类型
NDK是谷歌开发的一用于Android开发调用C语言的工具,而JNI是Java调用C语言的协议,桥梁。谷歌在Android2.3版本变开发出NDK供开发者使用,开发者使用它可以很方便的调用C代码,而代码书写规范需要遵循JNI协议进行定义。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,...
android中,一个类里边有两个方法,比如A和B,线在有多个线程,都可以随 ...
public static void main(String[] args) { S s = new S();Thread t1 = new Thread(new Runnable() { Override public void run() { while (true) { s.A();} } });Thread t2 = new Thread(new Runnable() { Override public void run() { while (true) { s.B();} } });...
android怎么在一个activity中finish掉另外一个activity
1、finishAcyivity()2、用广播监听 3、用ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);试试吧 比如说B要finish掉A 在A中设置一个静态变量instance 然后在onCreate中 instance=this;然后在B中调用A.instance.finish();...
android中从a界面跳到b界面,在b界面点返回按钮返回a界面,从c界面跳到...
startActivity(intent);a.this.finish();如果是还要带参数传输和返回的话 ,在a中:\/\/new一个intent Intent intent=new Intent();intent.setClass(a.this,b.this);\/\/a为当前activity,b为目标activity \/\/new一个Bundle对象并将要传递的数据传入 Bundle bundle=new Bundle();bundle.putDouble("SEX...
android_b759直连是什么意思
你是怎么调用的,代码里使用的话有专门的9图条用方法,不是直接set就行的
vivo\/iQOO手机的虚拟A\/B功能有什么作用?
虚拟A\/B(Virtual A\/B),属于Android系统下的一种新的更新机制,它能实现系统无缝更新,减少系统更新时(无法使用手机)的等待时间。采用虚拟A\/B更新机制的机型,当在系统升级页面下载并安装新版本时,手机不会重启进入升级过程,而是在手机使用过程中就能完成更新,不会影响手机当前系统版本使用,当手机...
androidstudiobenter键不把提示代码
1、File-->InvalidateCaches\/Restart清除一下缓存,不行请看步骤2。2、File-->settings-->Appearance&Behavior-->SystemSettings-->AndroidSDK,点击已选中的SDK版本,点击Apply卸载SDK。卸载成功以后再点击该SDK版本,重新安装一下。3、上述步骤还未能解决问题,请按照步骤2-->步骤1的顺序重做一遍即可。
莱丁今福: 将文件转成base64 字符串,android 手机开发的时候会用到,当然在android有转base64的方法,这里调用的是jdk的api [代码] [Java]代码 01 package com.xbl.test; 02 03 import java.io.File; 04 import java.io.FileInputStream; 05 import java.io....
猇亭区18985655024: Android中用base64转换完之后的字符串加入到url中,发现出现空指针异常,已经验证了转换之后的字符串直接打 - ?
莱丁今福: 百度是最好的老师:标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符.为解决此问题,可采用一种用于URL的改进Base64编码,它不在末尾填充'='号,并将标准Base64中的“+”和“/”分别改成了“*”和“-”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式.
猇亭区18985655024: android 程序 从数据库获取的base64类型的字符串转换成图片 再通过HashMap 传进入 但是图片显示不了 - ?
莱丁今福: 可以把bitmap图片和base64字符串来互相转换~ 从此妈妈再也不用担心我处理bitmap啦~ /** * 将bitmap转换成base64字符串 * * @param bitmap * @return base64 字符串 */ public String bitmaptoString(Bitmap bitmap, int ...
猇亭区18985655024: android 怎么用base64 加密imageview - ?
莱丁今福: // 加密传入的数据是byte类型的,并非使用decode方法将原始数据转二进制,String类型的数据 使用 str.getBytes()即可 String str = "Hello!";// 在这里使用的是encode方式,返回的是byte类型加密数据,可使用new String转为String类型 ...
猇亭区18985655024: android UDP通讯 -- 图片发送 - ?
莱丁今福: PC端: /** * 把照片转换成 base64 格式 * @param path 照片路径 * @return 转换后的二进制照片 */ private String getImageStr(String path) { String base64code = null; FileInputStream fis = null; ByteArrayOutputStream baos = null; File file ...
猇亭区18985655024: android 怎么将语音转换成base64 - ?
莱丁今福: 只能用流将语音读出来,然后把流转换就可以了
猇亭区18985655024: android怎么解析base64得到MP4,然后缓存到手机里,得到URL并调用系统播放器播放 - ?
莱丁今福: HttpClient 下载、并解码,同时保存
猇亭区18985655024: Android 将图片转成base64,小图片可以正常转换,当遇到大图片是拿到的字符串是null - ?
莱丁今福: 因为太大了,一般超过2M就不要用这种方式直接存储处理图片,建议使用缩略图.
猇亭区18985655024: base64的byte[]如何转换成图片 - ?
莱丁今福: 在C#中 图片到byte[]再到base64string的转换: Bitmap bmp = new Bitmap(filepath); MemoryStream ms = new MemoryStream(); bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); byte[] arr = new byte[ms.Length]; ms.Position = 0; ms....
猇亭区18985655024: 如何将Bitmap位图与base64字符串相互转换 - ?
莱丁今福: 无论要对图片,还是mp3,还是电影文件,本质都是2进制串.所以你缺的不是位图到base64字符串的转换,而是一套Base64编码解码算法.不清楚你的语言,以java为例.jdk1.8之前有api:Base64Encoder,Base64Decoder分别编码/解码.1.8除了更加厉害的 “Base64”.当然可以搜索各种各样的第三方jar包罗.对于你这个文件处理需求,推荐这个:http://download.csdn.net/download/liuzhao2011/9963611.下载后,将java文件考项目中,调好包路径即可.大文件处理速度快,可以直接输出编码后的文件(代码中有例子).使用方便无痛苦.