0

私は感情アイコン付きのメッセージを送信する小さなプロジェクトを行っています。画像をスパンブル文字列に変換して感情アイコンをテキストとして送信する次の機能を使用していますが、問題は、受信者が感情アイコンを表示する代わりに、メッセージの感情アイコンを表示できないことです。 h] ????

 public SpannableStringBuilder addSmily(int position){
        Drawable happySmileys = mContext.getResources().getDrawable(mThumbIds[position]);
        happySmileys .setBounds(0, 0, happySmileys.getIntrinsicWidth(), happySmileys.getIntrinsicHeight());
        /*Drawable sadSmiley = this.getResources().getDrawable(R.drawable.progress_4);
        sadSmiley .setBounds(0, 0, sadSmiley.getIntrinsicWidth(), sadSmiley.getIntrinsicHeight());*/

        SpannableStringBuilder builder = new SpannableStringBuilder();
        builder.append("[h]");
        builder.setSpan(new ImageSpan(happySmileys), builder.length()-"[h]".length(), builder.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        return builder;
    }

私の質問を読んでくれてありがとう。なにか提案を ??

4

2 に答える 2

1

あなたが求めているのは、すべてのデバイスでサポートされているわけではありません。ユーザーの電話メッセージを管理するアプリケーションは、その方法を知りません。それを機能させたい場合は、メッセージを読むための独自のアプリケーションを作成する必要があります(ちなみにそれほど難しくはありません)。次に、アプリケーションがインストールされている人にメッセージを送信すると、何でもできます...

于 2012-04-24T05:29:32.923 に答える
0

コンセプトをありがとうバビブ。いくつかの調査の結果、ここでの解決策は私がどのように実装するかであることがわかりました。

私のアプリケーションは、たとえば「私は幸せですここに画像の説明を入力してください」として「私は幸せです:-)」というメッセージを送信します。メッセージを受信したら、パターンをチェックします:-)そしてそれを。に置き換え ここに画像の説明を入力してくださいます。

これが私が置き換える方法です

public static CharSequence addSmileySpans(Context context, CharSequence your_recieved_message) {
    HashMap<Integer, String> smilyRegexMap = new HashMap<Integer, String>();

    smilyRegexMap.put(R.drawable.android_smile, ":-\\)");


    SpannableStringBuilder builder = new SpannableStringBuilder(your_recieved_message);
    @SuppressWarnings("rawtypes")
    Iterator it = smilyRegexMap.entrySet().iterator();
    while (it.hasNext()) {
        @SuppressWarnings("rawtypes")
        Map.Entry pairs = (Map.Entry) it.next();
        Pattern mPattern = Pattern.compile((String) pairs.getValue(),
                Pattern.CASE_INSENSITIVE);
        Matcher matcher = mPattern.matcher(your_recieved_message);
        while (matcher.find()) {
            Bitmap smiley = BitmapFactory.decodeResource(
                    context.getResources(), ((Integer) pairs.getKey()));
            builder.setSpan(new ImageSpan(smiley), matcher.start(),
                    matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
    }
    return builder;
}

次に、TextViewの関数の戻り値を次のように設定します。

messageTextView.setText(addSmileySpans(context,"i iam happy :-)"))
于 2012-06-08T11:45:33.473 に答える