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

Как добиться пользовательского интерфейса Android, подобного этому макету изображения? Об андроиде: clipChildren

Я хочу добиться такого макета: введите здесь описание изображения

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

 <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:clipChildren="false"
        >



        <RelativeLayout
            android:id="@+id/text_area_third"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/round_corner_background"
            android:focusable="false"
            android:paddingBottom="5dp"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:paddingTop="5dp" >

            <TextView
                android:id="@+id/text_download_purch_third"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignRight="@+id/acron_icon"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="30dp"
                android:layout_marginTop="10dp"
                android:gravity="left"
                android:maxLines="2"
                android:text="1asdasdasdasdadsasdasdadasdasdasdasdasdasdasdasd"
                android:textColor="@color/black"
                android:textSize="10sp"
                android:textStyle="normal" />

            <ImageView
                android:id="@+id/acron_icon"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_margin="5dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/acron"
                android:scaleType="fitCenter" />
        </RelativeLayout>

         <LinearLayout
             android:layout_alignTop="@+id/text_area_third"
             android:layout_alignLeft="@+id/text_area_third"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:background="@color/orange"
             android:layout_marginLeft="-10dp"
             android:layout_marginTop="-10dp"
             android:padding="3dp" >

             <TextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="GET"
                 android:textColor="@color/white"
                 android:textSize="13sp"
                 android:textStyle="bold" />
         </LinearLayout>

    </RelativeLayout>

введите здесь описание изображения

Вы можете видеть, что метка «GET» (с оранжевым фоном) обрезается родительской границей. Я установил android:clipChildren="false", но все равно обрезается. Кто-нибудь может мне помочь?


  • Что произойдет, если вы выровняете его с родительским макетом (используя layout_alignParentTop/Left) вместо text_area_third (и соответствующим образом настроите layout_marginLeft/Top)? 13.02.2013
  • @Geobits: я тоже так пробовал, но произошла та же ошибка 13.02.2013

Ответы:


1

Один RelativeLayout — это путь. Помните, что все должно быть как можно проще. В RelativeLayout последние объявленные элементы отображаются поверх остальных. Приведенный ниже XML должен (отчасти) соответствовать вашим потребностям, просто настройте изображения, поля и размеры по своему усмотрению.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="180dp"
    android:layout_height="60dp"
    android:background="#DDD" >

    <TextView
        android:id="@+id/text_download_purch_third"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="3dp"
        android:layout_marginLeft="12dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="10dp"
        android:background="@drawable/round_corner_background"
        android:maxLines="2"
        android:paddingLeft="4dp"
        android:paddingRight="25dp"
        android:paddingTop="16dp"
        android:text="1asdasdasdasdadsasdasdadasdasdasdasdasdasdasdasd"
        android:textColor="@color/black"
        android:textSize="10sp"
        android:textStyle="normal" />

    <ImageView
        android:id="@+id/acron_icon"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_margin="5dp"
        android:layout_marginTop="10dp"
        android:background="@drawable/acron"
        android:scaleType="fitCenter" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="4dp"
        android:background="#FFA0A0"
        android:padding="2dp"
        android:text="GET!"
        android:textColor="@color/white"
        android:textSize="13sp"
        android:textStyle="bold" />

</RelativeLayout>
08.10.2013

2

Вы думали об использовании FrameLayout ?? Это упрощает наложение изображения... (создание одного макета/представления поверх другого)... Вот хороший учебник...

http://mobile.tutsplus.com/tutorials/android/android-sdk_frame-layout/

13.02.2013
  • FrameLayout никогда не следует использовать для хранения более одного дочернего элемента. 13.02.2013
  • в документе говорится, что его можно использовать, если вас не волнует другое разрешение экрана. 13.02.2013
  • @Eric: не могли бы вы подробнее рассказать о причине, по которой FrameLayout нельзя использовать для хранения более 1 ребенка? 19.02.2013
  • Если вы посмотрите на описание FrameLayout на сайте developer.android.com, Как правило, FrameLayout должен используется для хранения одного дочернего представления, потому что может быть сложно организовать дочерние представления таким образом, чтобы их можно было масштабировать до разных размеров экрана, чтобы дочерние элементы не перекрывали друг друга. Однако вы можете добавить несколько дочерних элементов в FrameLayout и управлять их положением в FrameLayout, назначая гравитацию каждому дочернему элементу с помощью атрибута android:layout_gravity. 19.02.2013
  • FrameLayout на самом деле является отличной базой для создания пользовательских облегченных ViewGroups, содержащих неограниченное количество дочерних элементов. Это делают многие виджеты Android: ViewSwitcher, ImageSwitcher, TextSwitcher, ... 02.04.2014
  • Новые материалы

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

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

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

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

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

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

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