用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

java edittext显示表情

2015-01-01 作者: java源代码大全举报

[java]代码库

gHelper.read(getResources().openRawResource(R.drawable.f009));
// 得到第一张图片
BitmapDrawable bd = new BitmapDrawable(gHelper.getImage());
mSmile.addFrame(bd, gHelper.getDelay(0));
for (int i = 1; i < gHelper.getFrameCount(); i++) {
    mSmile.addFrame(new BitmapDrawable(gHelper.nextBitmap()), gHelper.getDelay(i));
}

mSmile.setBounds(0, 0, bd.getIntrinsicWidth(), bd.getIntrinsicHeight());
mSmile.setOneShot(false);

bd.setBounds(0, 0, bd.getIntrinsicWidth(), bd.getIntrinsicHeight());

// 需要处理的文本,[smile]是需要被替代的文本
final SpannableString spannable = new SpannableString(edittext
.getText().toString()
+ "[smile]");
// 要让图片替代指定的文字就要用ImageSpan
ImageSpan span = new ImageSpan(mSmile, ImageSpan.ALIGN_BASELINE);
// 开始替换,注意第2和第3个参数表示从哪里开始替换到哪里替换结束(start和end)
// 最后一个参数类似数学中的集合,[5,12)表示从5到12,包括5但不包括12
spannable.setSpan(span, edittext.getText().length(), edittext.getText()
.length()
+ "[smile]".length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

edittext.setText(spannable);
mSmile.invalidateSelf(); 

new Thread(new Runnable() {
    @Override
    public void run() {
        while (mRunning) {
            mSmile.selectDrawable(mFrame++);
            if (mFrame == mSmile.getNumberOfFrames()) {
                mFrame = 0;
            }
            edittext.postInvalidate();
            KT.out(mSmile.isRunning());
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}).start();
//该片段来自于http://yuncode.net


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...