Čaute, potřebuju nějakého Android Guru, co dělá v Javě a poradí řešení velice zapeklitého problému.
Chci v TextView vykreslit kolem každého jednotlivého znaku čtverec. Po dlouhém bádání jsem došel k následujícímu kódu:
TextView sentenceTV = gsa.findViewById(R.id.sentenceTV);
SpannableStringBuilder builder = new SpannableStringBuilder();
for(int i = 0; i < currentSentence.length();i++){
try {
String letter = currentSentence.getString(i); //currentSentence js JSONArray (pole znaků)
Drawable d = gsa.getResources().getDrawable(R.drawable.letter_square);
d.setBounds(0, 10, d.getIntrinsicWidth(), d.getIntrinsicHeight());
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
SpannableString letterSpannable = new SpannableString(letter);
letterSpannable.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); //Tady je zakopaný pes
letterSpannable.setSpan(new ForegroundColorSpan(Color.RED), 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
builder.append(letterSpannable);
} catch (JSONException e) {
e.printStackTrace();
}
}
sentenceTV.setText(builder, TextView.BufferType.SPANNABLE);
Což je zatím nejvíc, kam jsem se dostal. Problém je, že mi funguje buď zobrazení textu, nebo jen všech rámečků na jednotlivé znaky, ale chybí v nich text.
Dotaz
jenkings 90
Čaute, potřebuju nějakého Android Guru, co dělá v Javě a poradí řešení velice zapeklitého problému.
Chci v TextView vykreslit kolem každého jednotlivého znaku čtverec. Po dlouhém bádání jsem došel k následujícímu kódu:
TextView sentenceTV = gsa.findViewById(R.id.sentenceTV); SpannableStringBuilder builder = new SpannableStringBuilder(); for(int i = 0; i < currentSentence.length();i++){ try { String letter = currentSentence.getString(i); //currentSentence js JSONArray (pole znaků) Drawable d = gsa.getResources().getDrawable(R.drawable.letter_square); d.setBounds(0, 10, d.getIntrinsicWidth(), d.getIntrinsicHeight()); ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE); SpannableString letterSpannable = new SpannableString(letter); letterSpannable.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); //Tady je zakopaný pes letterSpannable.setSpan(new ForegroundColorSpan(Color.RED), 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); builder.append(letterSpannable); } catch (JSONException e) { e.printStackTrace(); } } sentenceTV.setText(builder, TextView.BufferType.SPANNABLE);
Což je zatím nejvíc, kam jsem se dostal. Problém je, že mi funguje buď zobrazení textu, nebo jen všech rámečků na jednotlivé znaky, ale chybí v nich text.
Tzn. když zakomentuju :
letterSpannable.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
Tak se zobrazí v TextView obyčejný text. Když to nezakomentuju, zobrazí se místo každého znaku čtvereček, ale jaksi v něm zase chybí ten znak
Link to comment
Share on other sites
5 odpovědí na tuto otázku
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now