因为要显示一张 base64编码的图片,而现在的android系统只支持bitmap图像,不支持base64的图像?
而原生代码如下:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ImageView image1 = (ImageView) findViewById(R.myImage.image);
byte[] bytes = Base64.decode("Base64编码图像", Base6 4.DEFAULT);
Bitmap bitmap=BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
image1 .setImageBitmap(bitmap); //设置Bitmap
}
请问我要用Native.js需要怎么转化?
5 个回复
最佳回复
Android_磊子
由于native层数组有一定局限,还请暂少用数组类型,根据你的需求可以使用如下njs:
qq277539152 (作者)
好像有点明白了!
var main;
var initImage =function(base64code){
var Base64=plus.android.importClass("android.util.Base64");
var BitmapFactory = plus.android.importClass("android.graphics.BitmapFactory");
var Bitmap = plus.android.importClass("android.graphics.Bitmap");
var ImageView = plus.android.importClass("android.view.View");
var AlertDialog = plus.android.importClass("android.app.AlertDialog");
main = plus.android.runtimeMainActivity();//获取activity
var bitmap=BitmapFactory.decodeByteArray(Base64.decode(base64code, Base64.DEFAULT), 0, (Base64.decode(base64code, Base64.DEFAULT)).length);
mui.alert("4444"+bitmap);
//change view
var iv = new ImageView(main.getApplicationContext());
iv.setImageBitmap(bitmap);
//弹出框
var dlg = new AlertDialog.Builder(main);
dlg.setTitle("验证码");
// 设置view
dlg.setView(iv);
dlg.setPositiveButton("确定",null);
dlg.show();
}
但是 bitmap 为什么会为空呢?
马克_SHI
我也遇到这个问题,
问题在 (Base64.decode(base64code, Base64.DEFAULT)).length
获取的长度是null,我也在找解决方法
Ga - 前后端各种语言全沾工程师
如果项目进度不到无法推翻的程度还是赶紧推了吧,我是直接脱坑了
用过一个项目之后再不想用第二次了,无论是代码还是社区完成度都太低了
真想用html5目前还是phonegap靠谱
如果你是业务系统后面还有并发跨域访问部分请求随机失败的大坑呢,我也没心情看了,我直接把应该做的并发改成队列顺序请求了,恶心的可以
还有这个社区,如果不是提交过一次示例代码给加分了,我连bug都快报不出来了,说好的报BUG返分一直不给返,积分马上见底,你可以看看我发的帖子,多少BUG没反馈或者反馈缓慢,你要能看再看看我的积分,扣成什么样了,好好的活跃用户整得我真是不想用
最后强调一次,能换赶紧换
DCloud_heavensoft
@DCloud_Android_磊子 协助下。
@DCloud_App_Array 关注下。