Small DrawableSpan fix (alig_center)
This commit is contained in:
parent
6ed978b7a2
commit
3e3a213a1b
@ -1,8 +1,11 @@
|
|||||||
package ru.noties.markwon;
|
package ru.noties.markwon;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
|
import android.text.SpannableStringBuilder;
|
||||||
|
import android.text.Spanned;
|
||||||
import android.text.method.LinkMovementMethod;
|
import android.text.method.LinkMovementMethod;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
@ -18,6 +21,7 @@ import java.util.Scanner;
|
|||||||
import ru.noties.debug.AndroidLogDebugOutput;
|
import ru.noties.debug.AndroidLogDebugOutput;
|
||||||
import ru.noties.debug.Debug;
|
import ru.noties.debug.Debug;
|
||||||
import ru.noties.markwon.renderer.*;
|
import ru.noties.markwon.renderer.*;
|
||||||
|
import ru.noties.markwon.spans.DrawableSpan;
|
||||||
import ru.noties.markwon.spans.DrawableSpanUtils;
|
import ru.noties.markwon.spans.DrawableSpanUtils;
|
||||||
|
|
||||||
public class MainActivity extends Activity {
|
public class MainActivity extends Activity {
|
||||||
@ -33,6 +37,21 @@ public class MainActivity extends Activity {
|
|||||||
|
|
||||||
final TextView textView = (TextView) findViewById(R.id.activity_main);
|
final TextView textView = (TextView) findViewById(R.id.activity_main);
|
||||||
|
|
||||||
|
// final Drawable drawable = getDrawable(R.mipmap.ic_launcher);
|
||||||
|
//// drawable.setBounds(0, 0, 16, 16);
|
||||||
|
// final SpannableStringBuilder builder = new SpannableStringBuilder();
|
||||||
|
// for (int i = 0; i < 10; i++) {
|
||||||
|
// builder.append("text here and icon: \u00a0");
|
||||||
|
// //noinspection WrongConstant
|
||||||
|
// builder.setSpan(new DrawableSpan(drawable, i % 3), builder.length() - 1, builder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||||
|
// builder.append('\n');
|
||||||
|
// }
|
||||||
|
// textView.setText(builder);
|
||||||
|
//
|
||||||
|
// if (true) {
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
new Thread(new Runnable() {
|
new Thread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
@ -107,6 +107,7 @@ public class SpannableConfiguration {
|
|||||||
|
|
||||||
// todo, change to something more reliable
|
// todo, change to something more reliable
|
||||||
// todo, must mention that bullet/ordered/quote must have the same margin (or maybe we can just enforce it?)
|
// todo, must mention that bullet/ordered/quote must have the same margin (or maybe we can just enforce it?)
|
||||||
|
// actually it does make sense to have `blockQuote` & `list` margins (if they are different)
|
||||||
public SpannableConfiguration build() {
|
public SpannableConfiguration build() {
|
||||||
if (blockQuoteConfig == null) {
|
if (blockQuoteConfig == null) {
|
||||||
blockQuoteConfig = new BlockQuoteSpan.Config(
|
blockQuoteConfig = new BlockQuoteSpan.Config(
|
||||||
|
@ -18,7 +18,7 @@ public class DrawableSpan extends ReplacementSpan {
|
|||||||
|
|
||||||
public static final int ALIGN_BOTTOM = 0;
|
public static final int ALIGN_BOTTOM = 0;
|
||||||
public static final int ALIGN_BASELINE = 1;
|
public static final int ALIGN_BASELINE = 1;
|
||||||
public static final int ALIGN_CENTER = 2;
|
public static final int ALIGN_CENTER = 2; // will only center if drawable height is less than text line height
|
||||||
|
|
||||||
private final Drawable drawable;
|
private final Drawable drawable;
|
||||||
private final int alignment;
|
private final int alignment;
|
||||||
@ -79,7 +79,7 @@ public class DrawableSpan extends ReplacementSpan {
|
|||||||
try {
|
try {
|
||||||
final int translationY;
|
final int translationY;
|
||||||
if (ALIGN_CENTER == alignment) {
|
if (ALIGN_CENTER == alignment) {
|
||||||
translationY = (int) (b / 2.F + .5F);
|
translationY = b - ((bottom - top - drawable.getBounds().height()) / 2);
|
||||||
} else if (ALIGN_BASELINE == alignment) {
|
} else if (ALIGN_BASELINE == alignment) {
|
||||||
translationY = b - paint.getFontMetricsInt().descent;
|
translationY = b - paint.getFontMetricsInt().descent;
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user