Nano Hash - криптовалюты, майнинг, программирование

программно создать список слоев

Я пытаюсь программно создать список слоев с измененными размерами растровых изображений в качестве элементов. Из того, что я видел, BitmapDrawable устарел. Новый конструктор требует следующие параметры - public BitmapDrawable (Resources res, Bitmap bitmap). Я начал с очень простого примера ниже.

    BitmapDrawable background = new BitmapDrawable();
    background.setBounds(10,10,10,10);
    Drawable[] layers = {background};
    LayerDrawable splash_test = new LayerDrawable(layers);
    splash_test.setLayerInset(0, 0, 0, 0, 0);

Как мне правильно использовать новый конструктор BitmapDrawable и как связать рисуемый ресурс с фоновым объектом.


Ответы:


1

Вы упомянули, что хотите составить список слоев из пары растровых изображений. То, что у вас есть, в основном правильное, все, что вам нужно сделать, это взять каждый растровый объект и превратить его в BitmapDrawable. Для этого вы можете использовать:

BitmapDrawable layer1 = new BitmapDrawable(context.getResources(), bitmap1);

Если вы находитесь в действии, когда вы делаете это, вам даже не нужно вызывать context.getResources(), просто getResources().

Затем вы возьмете все свои слои и создадите свой LayerDrawable, как вы это уже сделали:

Drawable[] layers = {layer1, layer2, layer3};
LayerDrawable splash_test = new LayerDrawable(layers);

(обратите внимание, что слой 3 будет выше слоя 2, а слой 2 будет выше слоя 1).

Когда у вас есть LayerDrawable, вы можете установить его на фоне вашего представления, используя view.setBackgoundDrawable(drawable) (в API 16 и выше) или view.setBackground(drawable) (в API до 16). В этом сообщении показано, как проверить версию устройства и вызвать соответствующий метод, если вы поддерживаете устройства до 16.

Если вы хотите расположить слои относительно друг друга, вам также нужно будет использовать setLayerInset(), как в вашем коде, но я бы рекомендовал вам попробовать это после того, как отобразится список слоев.

01.07.2016
  • Большое спасибо за подробное, хорошо написанное подробное объяснение, на что ссылается битмап1 выше или как мне создать этот объект 02.07.2016
  • Без проблем! bitmap1 должен быть одним из растровых изображений, размер которого вы хотите изменить и поместить в список слоев. Я предположил из вашего вопроса, что у вас уже есть растровые изображения. Если это не так, не могли бы вы добавить код, где вы хотите это сделать, и объяснение того, где вы планировали получить растровые изображения? 02.07.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..