2013-02-01 11 views
21

私は過去3日間、デフォルトのアンドロイドメッセージビューでグラフィカルなカスタム絵文字を表示しようとしていました。私は正常に私のカスタム顔文字をキーの代わりに表示しました。今問題は、私が幅広い文字列ビルダーでdrawableを表示しようとしていることです。しかし、ドロアブルはキーボードには表示されません。私は何とか描画可能に合わせてさまざまな方法を試してみましたが、それだけで文句を言わないアンドロイドのデフォルトのメッセージビューに表示Androidキーボードにカスタム絵文字を表示する

 SpannableString ss = new SpannableString(" "); 
        Drawable d = getResources().getDrawable(R.drawable.a); 
        d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); 
//     ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE); 
        ImageSpan span = new ImageSpan(d); 
//     ss.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); 

        mComposing.append(":"); 
        mComposing.setSpan(new ImageSpan(d), 0,1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
        getCurrentInputConnection().commitText(mComposing, 1); 

:ここではこれまでのコードがあります。どんな助けも高く評価されます。

+0

ちょっとSoH、あなたの問題の解決策を見つけましたか? Android Messagingアプリケーションにイメージを追加するときにも同じ問題が発生します。あなたは答えがあれば、このスレッドの回答として投稿してください。ありがとう.. – harsh

+0

私は似たようなことをやっています! http://stackoverflow.com/questions/16768930/implementations-of-emoji-emotji-view-keyboard-layouts – toobsco42

+0

「アンドロイドのデフォルトのメッセージ表示」という意味を明確にすることはできますか?どのクラスがImageSpanを適切に表示していないのですか?インスタンスはどこから来ましたか? – Erhannis

答えて

0

たぶん、あなたは使用することができます

String txt = "<img src=\"" + resourceID + "\"/>";をHTMLタグを生成し、そのemojiGetterそれは私のために正常に動作します

private ImageGetter emojiGetter = new ImageGetter() { 
    public Drawable getDrawable(String source){ 
     int id = getResources().getIdentifier(source, "drawable", context.getPackageName()); 

     Drawable emoji = getResources().getDrawable(id); 
     int w = (int)emoji.getIntrinsicWidth() ; 
     int h = (int)emoji.getIntrinsicHeight() ; 
     emoji.setBounds(0, 0, w, h); 
     return emoji; 
    } 
}; 

ある

Spanned spanned = Html.fromHtml(txt, emojiGetter, null);
editTextObj = setText(spanned,BufferType.SPANNABLE);

後にします。この変換を簡単にするためにCustomEditTextコンポーネントを作成しました。

+0

やあ、iflorit、私はAndroidのメッセージングアプリで画像が表示されないのと同じ問題を抱えています。 SDKのSOftKeyboardサンプルを使用してカスタムキーボードを作成しました。私はあなたのコードを試しましたが、それは私のイメージではなく、OBJテキストの小さな正方形しか表示しません。あなたのコードでは、イメージをEditTextに設定しています。しかしAndroidのメッセージングアプリでは、EditTextにアクセスできません。しかしカスタムキーボードでは、SoftKeyboardサンプルのStringBuilderオブジェクトを使ってMessagingアプリケーションに文字を挿入します。そのStringBuilderオブジェクトを使用してメッセージングアプリケーションに画像を挿入する方法はありますか?アドレッシング..ありがとう! – harsh

+0

いいえ、解決策ではありません。あなたはすべての絵文字のためにユニコードを取得し、それらを印刷する必要があります。 –

1

が、これは参考になるかもしれませ: Emoticons-Keyboard

も、これを参照してください:Implementations of Emoji (Emoticon) View/Keyboard Layouts

+0

[リンクのみの回答](http://meta.stackoverflow.com/tags/link-only-answers/info)はお勧めできませんので、SOの回答は解決策の検索の終点でなければなりません。時間の経過とともに古くなる傾向がある参照の途中降機)。リンクを参考にして、ここにスタンドアロンの概要を追加することを検討してください。 – kleopatra

+0

@kleopatraそれでは、慎重にして、あなたの感謝の気持ちに感謝します!!! – captaindroid

0

を私はそれがこの

ImageGetter imageGetter = new ImageGetter() 
       { 
        public Drawable getDrawable(String source) { 
         Drawable d = getResources().getDrawable(R.drawable.e041); 
         d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); 
         return d; 
        } 
       }; 

       Spanned cs = Html.fromHtml("<img src='" + getResources().getDrawable(R.drawable.e041) + "'/>", imageGetter, null); 

      getCurrentInputConnection().commitText(cs, 1); 

//のようにやって達成しているが、それは最後に入力されたテキストが表示さ上書きmy question here

関連する問題