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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.