EditText插入图片,

来源:互联网 发布:遗传算法编程 编辑:程序博客网 时间:2024/06/07 01:53

activity中的代码实现时如下,

public class MainActivity extends Activity {private EditText editText;private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);editText = (EditText) this.findViewById(R.id.editText1);button = (Button) this.findViewById(R.id.button1);//根据drawable文件夹下图片的后缀名来插入图片,button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubint randomId = 1 + new Random().nextInt(5);// 数字1到9;Field field;try {//根据产生的1到5的随机数,来随机获得图片名称,根据名称来获得映射对象。field = R.drawable.class.getDeclaredField("ic_launcher"+ randomId);//获得文件名称对应的资源id。int resourceId = Integer.parseInt(field.get(null).toString());Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resourceId);ImageSpan imageSpan=new ImageSpan(MainActivity.this, bitmap);SpannableString spannableString=new SpannableString("ic_launcher");spannableString.setSpan(imageSpan, 0, 11, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);editText.append(spannableString);} catch (NoSuchFieldException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (NumberFormatException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});}}
没点击一个按钮,就会插入一个表情。spannableString.setSpan()方法,参数11是SpannableString 中的 ic_launcher的长度,表示的从多少位开始输出这个字符串。
布局文件中只有一个Edittext,和一个Button;

0 0