Làm cách nào để đặt biểu tượng cảm xúc bằng unicode trong chế độ xem văn bản?


94

Xin chào, tôi muốn làm như sau:

??? unicode = U+1F60A
String emoji = getEmojiByUnicode(unicode)
String text = "So happy "
textview.setText(text + emoji);

để có được điều này trong chế độ xem văn bản của tôi:

Thật hạnh phúc 😊

Tôi có thể thực hiện getEmojiByUnicode(unicode)như thế nào?

Kiểu gì nên các unicodebiến được? (Chuỗi, ký tự, int?)

Xin lưu ý rằng tôi KHÔNG muốn sử dụng Có thể kéo!

Câu trả lời:


185

Đã tìm ra giải pháp:

Trong unicode của mình, tôi đã thay thế ' U + ' bằng ' 0x '

Ví dụ: thay thế ' U + 1F60A ' bằng ' 0x1F60A '

Bằng cách này, tôi có một 'int' như

int unicode = 0x1F60A;

Cái nào có thể được sử dụng với

public String getEmojiByUnicode(int unicode){
    return new String(Character.toChars(unicode));
}

Vì vậy, Textview hiển thị 😊 mà không có Drawable

Hãy thử nó với http://apps.timwhitlock.info/emoji/tables/unicode


3
hoạt động trên 5.1 nhưng trên 4.4.4 tôi nhận được một? cho chuỗi biểu tượng cảm xúc của tôi
filthy_wizard

21
Có thể thực hiện việc này trong tệp string.xml không?
Spektakulatius

@ user1232726, Điều này sẽ phụ thuộc vào điện thoại của người dùng, bao gồm cả biểu tượng cảm xúc đang được sử dụng.
Suragch

U có thể xin vui lòng giúp đỡ để chuyển đổi này "5794d5f7895fa10a8f8e1357" vào biểu tượng cảm xúc .. @GilbertGiesbert ..Thanks ...
Ravindra Kushwaha

2
Thật không may, nó không hoạt động với 32 bit Unicode, như U + 1F1EF U + 1F1F2. Giá trị này nằm ngoài ranh giới số nguyên.
Chris - Jr

40

Bạn có thể trực tiếp sử dụng Biểu tượng cảm xúc trong tài nguyên chuỗi bằng cách sử dụng mã thập phân như sau:

😊

ví dụ:

<string name="emoji">I am happy &#128522;</>

11
Đây là một câu trả lời tốt; để tìm mã thập phân của một biểu tượng cảm xúc, bạn có thể sử dụng một cái gì đó như quackit.com/character_sets/emoji
Adinia,

1
tôi không tìm ra x cần thiết
HMAC

3
Lỗi khi xây dựng: Tham chiếu ký tự "& #
Tiến sĩ aNdRO

@hmac Tôi đã cuộn lại câu trả lời, đã xóa các đề cập vềx
Vadim Kotov,

3

Lưu ý: Đối với Kotlin

fun getEmoji(unicode: Int): String {
    return String(Character.toChars(unicode))
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.