给EditText中的图片加监听
package com.example.helloword; import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.text.Editable;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ImageSpan;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity {
EditText txtEdit;
ImageSpan imageSpan;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtEdit = (EditText) findViewById(R.id.et_button);
txtEdit.setOnClickListener(textListener); imageSpan = new ImageSpan(this, R.drawable.ic_launcher);
SpannableString ss = new SpannableString("photo");
ss.setSpan(imageSpan, 0, "photo".length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Editable editable = txtEdit.getEditableText();
int selectedIndex = txtEdit.getSelectionStart();
ss.getSpans(0, ss.length(), ImageSpan.class);
if (selectedIndex < 0)
editable.append(ss);
else
editable.insert(selectedIndex, ss);
} private OnClickListener textListener = new OnClickListener()
{
@Override
public void onClick(View v)
{ //关闭软键盘
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(txtEdit.getWindowToken(), 0);
Spanned s = txtEdit.getText();
ImageSpan[] imageSpans = s.getSpans(0, s.length(), ImageSpan.class);
int selectionStart = txtEdit.getSelectionStart();
for (ImageSpan span : imageSpans)
{
int start = s.getSpanStart(span);
int end = s.getSpanEnd(span);
if (selectionStart >= start && selectionStart < end)//找到图片
{
Bitmap bitmap = ((BitmapDrawable) span.getDrawable()).getBitmap();
viewPicture(bitmap);
return;
}
}
//打开软键盘
imm.showSoftInput(txtEdit, 0);
}
}; private void viewPicture(Bitmap bitmap)
{
System.out.println("*******************************");
/* if (bitmap == null)
return;
//将由图片生成Uri
Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, null, null));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "image/*");
startActivity(intent); */
}
}
给EditText中的图片加监听的更多相关文章
- 使用TextView/EditText应该注意的地方,监听EditText,addTextChangedListener
http://blog.csdn.net/huichengongzi/article/details/7818676 监听 EditText 控件: addTextChangedListener(ne ...
- 关于JAVA中事件分发和监听机制实现的代码实例-绝对原创实用
http://blog.csdn.net/5iasp/article/details/37054171 文章标题:关于JAVA中事件分发和监听机制实现的代码实例 文章地址: http://blog.c ...
- Android EditText中插入图片并响应点击事件
EditText中插入图片基本就是两种方法: ,通过Html.fromHtml(..)来实现 [mw_shl_code=java,true]eText.append(Html.fromHtml(&qu ...
- Android 开发中的View事件监听机制
在开发过程中,我们常常根据实际的需要绘制自己的应用组件,那么定制自己的监听事件,及相应的处理方法是必要的.我们都知道Android中,事件的监听是基于回调机制的,比如常用的OnClick事件,你了解它 ...
- vue中img图片加载中以及加载失败显示默认图片问题
加载中默认图片:主要是onload事件监听,data中定义变量 imgSrc :require('./default.png'): <div class="per-pic" ...
- Unity中利用委托与监听解耦合的思路
这篇随笔是一篇记录性的随笔,记录了从http://www.sikiedu.com/my/course/304,这门课程中学到的内容,附带了一些自己的思考. 一.单例模式的应用 首先假想一种情况,现在需 ...
- QT中使用Event Filter监听button事件,Release后button不见
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhenyu5211314/article/details/27201043 问题RT,在程序中我使用 ...
- SpringBoot 中发布ApplicationEventPublisher,监听ApplicationEvent 异步操作
有这么一个业务场景:当用户注册后,发送邮件到其邮箱提示用户进行账号激活,且注册成功的同时需要赠送新人用户体验卡券. 业务有了,那么问题也就来了. What? 问题....问题?我听说你有问题? 来拔刀 ...
- Android应用中返回键的监听及处理
MainActivity: package com.testnbackpressed; import android.os.Bundle; import android.view.KeyEvent ...
随机推荐
- Glog
Glog的简单入门,glog虽然在配置参数方面比较麻烦,但是在小规模程序中,由于其简单灵活,也许会有优势. 0, glog 是google的开源日志系统,相比较log4系列的日志系统,它更加轻巧灵活 ...
- chrome 、 火狐等浏览器对空格符 解析不同,页面显示不一致
最近初学web,从头开始,菜鸟级别,遇到的小问题记录下来. 网上资料说 空格在ie.firefox.chrome浏览器上显示的效果不太一样,主要是前面的空格宽度不同,这可能是因为不同的浏览器会有不同的 ...
- SQL Server 动态行转列(轉載)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段; 方法二:使用拼接SQL, ...
- ECharts的使用相关参考---转
ECharts图表组件初级入门之(一):如何将ECharts引入至项目中的几种方式 http://www.stepday.com/topic/?801 ECharts图表初级入门篇:如何配置EChar ...
- Windows上右键git菜单出来的原因
Windows上右键git菜单出来的原因 Git下载地址https://code.google.com/p/msysgit/downloads/list?q=full+installer+offici ...
- 《码农周刊》干货精选(Python 篇)
<码农周刊>已经累计发送了 38 期,我们将干货内容进行了精选.此为 Python 篇. <码农周刊>往期回顾:http://weekly.manong.io/issues/ ...
- VIJOS 1512SuperBrother打鼹鼠(二维BIT)
呵呵.. 二维树状数组,第二维和第一维基本一样. --------------------------------------------------------------------------- ...
- 简单十步让你全面理解SQL
很多程序员认为SQL是一头难以驯服的野兽.它是为数不多的声明性语言之一,也因为这样,其展示了完全不同于其他的表现形式.命令式语言. 面向对象语言甚至函数式编程语言(虽然有些人觉得SQL 还是有些类似功 ...
- 交换右ctrl和capslock
记得几年前开始使用Emacs,因为使用ctrl键太频繁了,所以上网查了下解决方案,看到这篇文章 .把capslock和左ctrl交换,简直要泪流满面啊!立马照着做,从此在所有使用的电脑上都对此进行了设 ...
- 对程序员的不尊重是中国it产业的悲哀。
电脑刚进入中国时,“程序员”三个字是一份令人尊敬的岗位,那个时候中国互联网人才奇缺.程序员的价格也就水涨船高.小的时候电视里到处播放着电脑培训学院的招生广告.一说到程序员,给我们的印象都是白领,高薪的 ...