Я хочу выровнять мой ImageSpan
с базовым текстом, но мне также нужно добавить некоторый интервал между строками.
Проблема заключается в том, что когда я добавляю межстрочный интервал, ImageSpan
не выравнивается с базовой линией текста, а до baseline+lineSpacing
, поэтому он появляется ниже, чем должен.ImageSpan.ALIGN_BASELINE, когда TextView имеет lineSpacing
Есть ли обходной путь к этому?
Edit: Дальнейшее объяснение:
Как это выглядит как без
lineSpacing
(стрелка являетсяImageSpan
). Он правильно выровнен по отношению к базовой линии.
Как это выглядит, как если бы я добавить
android:lineSpacingMulitiplier="1.2"
Edit 2 Код:
XML:
<com.kushtrim.example.views.CustomTypefaceTextView
android:id="@+id/descId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lines="3"
android:gravity="center_vertical"
android:layout_marginLeft="@dimen/_45"
android:layout_marginTop="@dimen/_6"
android:layout_marginBottom="@dimen/_20"
app:font_type="merriweather_regular"
android:textSize="@dimen/f40"
android:lineSpacingMultiplier="1.2"
android:textColor="@color/black"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
android:ellipsize="end" />
Другие соответствующие методы:
private Spannable getContentText(ContactRaport contactRaport) {
DateTime dateTime = new DateTime(contactRaport.contactDate);
String datePart = dateTime.getDayOfMonth() + " " + dateTime.monthOfYear().getAsShortText(new Locale("nl")) + "; ";
String completeText = datePart + contactRaport.note;
Typeface font1 = Typeface.createFromAsset(context.getAssets(), "MyFont1.ttf");
Typeface font2 = Typeface.createFromAsset(context.getAssets(), "MyFont2.ttf");
SpannableStringBuilder spannable = new SpannableStringBuilder("XX");
ImageSpan arrow = getArrowImageSpan(contactRaport);
spannable.setSpan(arrow, 0, 2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
spannable.append(completeText);
spannable.setSpan(new CustomTypefaceSpan("", font1), 2, datePart.length()+1, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannable.setSpan(new CustomTypefaceSpan("", font2), datePart.length(), completeText.length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannable.setSpan(new ForegroundColorSpan(getContentDateColor(contactRaport)),2, datePart.length()+1, 0);
return spannable;
}
.
private ImageSpan getArrowImageSpan(ContactRaport contactRaport) {
Drawable d = null;
switch (contactRaport.type) {
... logic to load the correct drawable
}
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
return new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
}
показать мне, что у точно want..provide код ya screen short – Destro
@Destro Дальше объяснил, что я имею в виду. Я не публиковал код, так как не делаю ничего особенного, просто добавляю android: lineSpacingMulitiplier –
как добавить изображение, означает под линейной компоновкой ya относительный макет .. Изображение добавляет в центр по вертикали макета – Destro