Добавить поле между RadioButton и его маркировкой в Android?

Действительно ли возможно добавить определенное пространство между RadioButton и маркировкой при тихом использовании встроенных компонентов Android? По умолчанию текст выглядит немного раздавленным.

<RadioButton android:id="@+id/rb1"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:text="My Text"/>

Я попробовал несколько вещей:

  1. Определение поля и дополнения, кажется, добавляет пространство вокруг всего элемента (кнопка и текст, вместе). Это имеет смысл, но не делает то, в чем я нуждаюсь.

  2. Создание пользовательского drawable через XML указывающие изображения для проверенных и состояний непроверенных, затем добавление нескольких дополнительных пикселей к правой стороне каждого изображения. Это должно работать, но теперь Вы ступаете вне UI по умолчанию. (Не конец света, но не идеальный)

  3. Добавьте дополнительный пробел к началу каждой маркировки. Android, кажется, обрезает ведущий пробел, как в "Моей Строке", но unicode U+00A0 определения, как в "\u00A0My Строка" добивается цели. Это работает, но это кажется довольно грязным.

Какие-либо лучшие решения?

77
задан MahlerFive 30 June 2015 в 20:18
поделиться

1 ответ

Как уже упоминалось, статическая переменная является глобальной для всего приложения, а не для отдельных запросов.

Чтобы сделать единичный предмет глобальным только к отдельным запросам, вы можете использовать HttpContext. Ток. Предметы словарь.

public class Singleton
{
    private Singleton() { }

    public static Singleton Instance 
    {   
        get
        {
            if (HttpContext.Current.Items["yourKey"] == null)
                HttpContext.Current.Items["yourKey"] = new Singleton();
            return (Singleton)HttpContext.Current.Items["yourKey"];
        }
    }
}
-121--1254761-

Я думаю, что я не думал об этом достаточно жестко. решение заключалось в том, чтобы включить имиджеальфаблинг перед тем, как поместить текст на изображение.

<?php

$img = imagecreatetruecolor(200, 50);

$imageX = imagesx($img);
$imageY = imagesy($img);

imagealphablending($img, false);
imagesavealpha($img, true);

$transparent = imagecolorallocatealpha($img, 255,255,255, 127);
$white = imagecolorallocate($img, 255,255,255);
$grey = imagecolorallocate($img, 127,127,127);
imagefilledrectangle($img, 0, 0, $imageX, $imageY, $grey);
imagefilledrectangle($img, 2, 2, $imageX-4, $imageY-4, $transparent);

$font = "./arialbd.ttf";
$fontSize = 12;
$text = "THIS IS A TEST";

$textDim = imagettfbbox($fontSize, 0, $font, $text);
$textX = $textDim[2] - $textDim[0];
$textY = $textDim[7] - $textDim[1];

$text_posX = ($imageX / 2) - ($textX / 2);
$text_posY = ($imageY / 2) - ($textY / 2);

imagefilledrectangle($img, 10, 10, $imageX-10, $imageY-10, $grey);
imagealphablending($img, true);
imagettftext($img, $fontSize, 0, $text_posX, $text_posY, $white, $font, $text);

header("Content-Type: image/png");
imagepng($img);

?>
-121--3832474-

Не можете попробовать проверить это прямо сейчас, но вы пытались проверить, делает ли атрибут android: drawurePadding то, что вам нужно?

5
ответ дан 24 November 2019 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: