相册选取图片插入到EditText中,实现图文混排
来源:互联网 发布:膜法世家绿豆面膜知乎 编辑:程序博客网 时间:2024/06/03 19:40
1.首先用到了 ImagePicker,上github搜索仿微信图片选择就能找到
2.导入ImagePicker的包 compile 'com.squareup.picasso:picasso:2.5.2'3.我是用是picasso加载图片,github上imagePicker的demo里分别使用了三种加载图片的第三方,glide,picasso,imageload,我使用的picasso
compile 'com.squareup.picasso:picasso:2.5.2'4.在application初始化ImagePicker imagePicker = ImagePicker.getInstance();imagePicker.setImageLoader(new PicassoImageLoader()); //设置图片加载器imagePicker.setShowCamera(true); //显示拍照按钮imagePicker.setCrop(true); //允许裁剪(单选才有效)imagePicker.setSaveRectangle(true); //是否按矩形区域保存imagePicker.setSelectLimit(9); //选中数量限制imagePicker.setStyle(CropImageView.Style.RECTANGLE); //裁剪框的形状imagePicker.setFocusWidth(800); //裁剪框的宽度。单位像素(圆形自动取宽高最小值)imagePicker.setFocusHeight(800); //裁剪框的高度。单位像素(圆形自动取宽高最小值)imagePicker.setOutPutX(1000);//保存文件的宽度。单位像素imagePicker.setOutPutY(1000);//保存文件的高度。单位像素继承ImageLoader创建PicassoImageLoader,下面会用到@Overridepublic void displayImage(Activity activity, String path, ImageView imageView, int width, int height) { Picasso.with(activity) .load(Uri.fromFile(new File(path))) .placeholder(R.mipmap.default_image) .error(R.mipmap.default_image) .resize(width, height) .centerInside() .memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE) .into(imageView);}@Overridepublic void clearMemoryCache() { //这里是清除缓存的方法,根据需要自己实现}6.在Activity中制造点击事件跳转,editText = (EditText) findViewById(R.id.edit);gridView = (GridView) findViewById(R.id.grid);imagePicker = ImagePicker.getInstance();imagePicker.setImageLoader(new PicassoImageLoader());ImageGridActivity这个类是导入的PmagePicker的包里面封装好的,能跳转到相册实现多张图片选取
public void BtIntent(View v) { Intent intent = new Intent(this, ImageGridActivity.class); startActivityForResult(intent, 0);}//重写onActivityResult方法
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == ImagePicker.RESULT_CODE_ITEMS) { if (data != null && requestCode == 0) { ArrayList<ImageItem> images = (ArrayList<ImageItem>) data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS); //可以用gridView展示选择的图片 // MyAdapter adapter = new MyAdapter(images,MainActivity.this); //gridView.setAdapter(adapter); for (int i = 0; i < images.size(); i++) { //循环拿到路径 String path = images.get(i).path; insertEdit(path); } } else { Toast.makeText(this, "没有数据", Toast.LENGTH_SHORT).show(); } }}
//实现图片插入到EditeText中public void insertEdit(String path) { Bitmap loadedImage = BitmapFactory.decodeFile(path); loadedImage = Bitmap.createBitmap(loadedImage, 0, 0, loadedImage.getWidth(), loadedImage.getHeight(), new Matrix(), true); ImageSpan imageSpan = new ImageSpan(MainActivity.this, loadedImage); SpannableString spannableString = new SpannableString(path); spannableString.setSpan(imageSpan, 0, path.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);// 将选择的图片追加到EditText中光标所在位置 int index = editText.getSelectionStart();// 获取光标所在位置 Editable edit_text = editText.getEditableText(); if (index < 0 || index >= edit_text.length()) { edit_text.append(spannableString); } else { edit_text.insert(index, spannableString); } }
7.别忘了添加权限<uses-permission android:name="android.permission.CAMERA" />
阅读全文
0 0
- 相册选取图片插入到EditText中,实现图文混排
- Android:EditText插入图片实现图文混排
- Android图文混排-实现EditText图文混合插入上传
- Android图文混排(一)-实现EditText图文混合插入上传
- Android图文混排(一)-实现EditText图文混合插入上传
- android edittext图文混排
- 异步加载图片,实现图文混排
- TextView添加图片实现图文混排
- EditText实现图文混排,保存与解析(墨雪亲测)
- EditText中插入图片
- TextView中实现图文混排
- iOS 字符中插入按钮(简单图文混排)
- 图文混排实现
- Swift从相册选择图片,图文混排并且可以保存、上传数据
- Android EditText图文混排的总结
- Android EditText和TextView图文混排
- Android 图文混排(EditText)
- Android EditText图文混排的总结
- Servlet的生命周期
- FTP 服务安装
- 来两幅美图
- 在客户端输入URL到页面返回,发生了什么?
- 机器学习人工智能,数学基础知识
- 相册选取图片插入到EditText中,实现图文混排
- h5+vue video使用
- shell——排序(sort)
- 我的第三篇博客
- selenium与selenium在scrapy中的集成
- 获取JavaScript对象的方法
- FZUOJ 2280 Magic
- Eclipse+flask+virtualenv项目开发环境准备
- 学习bootstrap的day3