Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
rotting
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 9
1

Какой элемент интерфейса использовать?

11.01.2016, 18:03. Просмотров 880. Ответов 11
Метки нет (Все метки)

Хочу сделать кнопку с картинкой, под которой будет текст с одним шрифтом, а под ним текст с другим шрифтом. Подскажите как реализовать такой элемент интерфейса.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2016, 18:03
Ответы с готовыми решениями:

Не могу понять, какой элемент использовать
Доброе утро всем. Подскажите пожалуйста, какой элемент используется в...

Какой использовать элемент экрана для вывода текста?
Здравствуйте. Во вкладке Pallete в Intellij IDEA доступны различные слои,...

В какой программе рисовать мелкие графические элементы для программного интерфейса
Здравствуйте. Вопрос организационного плана. Допустим что нужно разработать...

Подскажите элемент интерфейса
Добрый вечер! Хочу сделать что-то по типу разблокировки экрана на Android,...

Какой контейнер использовать?
Всем привет! Нужно повторить след: Немного не пойму, какой контейнер нужно...

11
Pablito
2810 / 2235 / 753
Регистрация: 12.05.2014
Сообщений: 7,819
Завершенные тесты: 1
11.01.2016, 18:07 2
Текст 1 и 2 это часть кнопки, они кликабельные? Что значит одном шрифтом, другим шрифтом?
0
rotting
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 9
11.01.2016, 18:17  [ТС] 3
картинка, текст1 (жирный), текст2(курсив). Все одно под другим. Кликабельное должно быть все вместе, вне зависимости на что нажали.
0
Pablito
2810 / 2235 / 753
Регистрация: 12.05.2014
Сообщений: 7,819
Завершенные тесты: 1
11.01.2016, 18:34 4
XML
1
2
3
4
5
6
7
        <TextView
            style="@style/Widget.AppCompat.ImageButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableTop="@drawable/ic_black"
            android:gravity="center"
            android:text="@string/btn_text" />
строчку со style можно и убрать, будет просто текст и картинка, а со стилем типа кнопка
в файле res/strings.xml добавляем строку
XML
1
<string name="btn_text"><b>жирный\n</b><i>курсив</i></string>
Название: Untitled.png
Просмотров: 24

Размер: 4.3 Кб
2
rotting
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 9
11.01.2016, 18:41  [ТС] 5
Буду безмерно рад если расскажете как это все сделать программно)

Добавлено через 1 минуту
Сейчас делаю через кнопку:
Java
1
2
button = new Button(context);
button.setText(films.get(position).getName());
0
Pablito
2810 / 2235 / 753
Регистрация: 12.05.2014
Сообщений: 7,819
Завершенные тесты: 1
11.01.2016, 18:59 6
Лучший ответ Сообщение было отмечено rotting как решение

Решение

Java
1
2
3
4
5
6
7
8
        TextView tv = (TextView) findViewById(R.id.button);
        SpannableString line1 = new SpannableString("Жирный текст\n");
        SpannableString line2 = new SpannableString("Курсив");
        line1.setSpan(new StyleSpan(Typeface.BOLD), 0, line1.length(), 0);
        line2.setSpan(new StyleSpan(Typeface.ITALIC), 0, line2.length(), 0);
        SpannableStringBuilder ssb = new SpannableStringBuilder(line1);
        ssb.append(line2);
        tv.setText(ssb);
Добавлено через 1 минуту
ненадо кнопку, на ней не получится делать текст разными стилями
проще брать TextView, применять на него стиль как у кнопки

Добавлено через 5 минут
подозреваю это какой-то список, листвью например
если так, то так не делается - стили у текста

обычно делается отдельная разметка для полоски листвью, а в ней уже несколько элементов - картинка, надписи и т.д.
причем надписи делаются разными TextView, а не лепится все из текста с в одно
1
rotting
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 9
11.01.2016, 19:58  [ТС] 7
А картинку как программно добавить?
0
Pablito
2810 / 2235 / 753
Регистрация: 12.05.2014
Сообщений: 7,819
Завершенные тесты: 1
11.01.2016, 20:06 8
Java
1
2
        Drawable drawable = ContextCompat.getDrawable(this, R.drawable.ic_black);
        tv.setCompoundDrawablesWithIntrinsicBounds(null, drawable, null, null);
1
rotting
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 9
11.01.2016, 20:24  [ТС] 9
Java
1
Drawable drawable = ContextCompat.getDrawable(this, R.drawable.ic_black);
говорит такого метода нет getDrawable()
0
Pablito
2810 / 2235 / 753
Регистрация: 12.05.2014
Сообщений: 7,819
Завершенные тесты: 1
11.01.2016, 20:27 10
можно весь код класса?
0
rotting
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 9
11.01.2016, 21:30  [ТС] 11
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
public class ProductAdapter extends BaseAdapter{
        private Context context;
        private List<Film> films;
 
        public ProductAdapter(Context context, List<Film> products) {
            this.context = context;
            this.films = products;
        }
 
        @Override
        public int getCount() {
            return films.size();
        }
 
        @Override
        public Object getItem(int position) {
            return films.get(position);
        }
 
        @Override
        public long getItemId(int position) {
            return position;
        }
 
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            TextView tv;
 
            if (convertView == null) {
                //button = new Button(context);
                //button.setText(films.get(position).getName());
 
                tv = new TextView(context);//TextView) findViewById(R.id.button)
                SpannableString line1 = new SpannableString("Жирный текст\n");
                SpannableString line2 = new SpannableString("Курсив");
                line1.setSpan(new StyleSpan(Typeface.BOLD), 0, line1.length(), 0);
                line2.setSpan(new StyleSpan(Typeface.ITALIC), 0, line2.length(), 0);
                SpannableStringBuilder ssb = new SpannableStringBuilder(line1);
                ssb.append(line2);
                tv.setText(ssb);
 
                URL url = null;
                try {
                    url = new URL("http://fs185.www.ex.ua/show/218888914/218888914.jpg?200");
 
                    //URLConnection connection = url.openConnection();
                    //InputStream is = connection.getInputStream();
                    //Drawable drawable = Drawable.createFromStream(is, "src");
                    Drawable drawable;
                    drawable = ContextCompat.getDrawable(context, R.drawable.abc_ic_go);
                    tv.setCompoundDrawablesWithIntrinsicBounds(null,drawable,null,null);
 
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
 
 
                //button.setBackground();
            } else {
                tv = (TextView) convertView;
            }
            tv.setId(position);
 
            return tv;
        }
    }
Добавлено через 7 минут
Вопрос решен

Написал так:
Java
1
2
drawable = getResources().getDrawable(R.drawable.abc_ic_go);
tv.setCompoundDrawablesWithIntrinsicBounds(null,drawable,null,null);
0
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
12.01.2016, 10:36 12
Java
1
tv.setCompoundDrawablesWithIntrinsicBounds(R.drawable.abc_ic_go, 0, 0, 0);
0
12.01.2016, 10:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2016, 10:36

Какой адаптер посоветуете мне использовать?
MainActivity import java.util.ArrayList; import android.os.AsyncTask;...

Какой контекст использовать в static функции?
Здравствуйте. В мейнактивити есть static метод для взаимодействия с другими...

Как главная активити узнает какой именно фрагмент использовать?
Насколько я понял,можно создавать фрагмент в отдельном xml макете и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru