Wątek przeniesiony 2018-04-10 14:29 z Java przez Koziołek.

Android Studio. Layout. TextView wewnątrz ImageView, na stałe, na z góry określonej pozycji.

0

Witam.
Bardzo przepraszam za brak polskich znakow, jednak nie jestem w stanie ich ustawic, na codzien ich nie uzywam.

Nie jestem programista, interesuje sie tym tematem troszke, ale bez wiekszych sukcesow.

Stworzyłem prosta aplikacje, ktora pobiera dane z pol tekstowych EditText i wyswieta je w nowej aktywnosci w TextView, ktory jest osadzony na ImageView.

Wszystko działa tak jak chciałem, tylko mam problem z layoutem :(, a mianowicie. Inaczej to wyglada w android studio, a inaczej na telefonie. Da sie to poustawiac tak, zeby wyswietlalo TextView w odpowiednim miejscu na moim telefonie ( metoda prob i bledow), jednak na innych telefonach TextView, o ktorym mowa, zmenia calkowicie polozenie, czesto jest w ogóle poza ImageView.

Czy istnieje mozliwosc wpisania elementu EditText do ImageView? (cos jak w css) oraz ustawic jego pozycje na stale?

Szukam rozwiazania od kilku dni, myslalem o wpisaniu tekstu programowo w bitmape przed wyswietleniem. Jednak ten temat mnie wciaz sukcesywnie pokonuje. To prosta sprawa raczej jest, wiec nie powinno byc az tak skaplikowane. Moze ma ktos prostsze rozwiazanie? w jaki sposob pisac w dowolnym miejscu na ImageView, tak zeby wygladalo to tak samo na roznych telefonach. ponizej kod xml layoutu tej aktywnosci. jest to moj pierwszy post, wiec kod zamieszcze zaraz pod nim jako, ze dostaje wiadomosci od forum: > Musisz napisać min. 1 post, aby umieścić linki w tym polu. <

0
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:context=".Main2Activity">

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="593dp"
        android:layout_height="268dp"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="8dp"
        android:fitsSystemWindows="false"
        android:scaleType="fitCenter"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.441"
        app:srcCompat="@drawable/baby" />

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="-1dp"
        android:layout_marginLeft="64dp"
        android:layout_marginStart="64dp"
        android:layout_marginTop="8dp"
        android:textColor="#a19d94"
        android:textSize="8sp"
        app:layout_constraintBottom_toTopOf="@+id/textView10"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0" />

    <TextView
        android:id="@+id/textView7"
        android:layout_width="92dp"
        android:layout_height="10dp"
        android:layout_marginBottom="-1dp"
        android:layout_marginLeft="76dp"
        android:layout_marginStart="76dp"
        android:layout_marginTop="8dp"
        android:textColor="#a19d94"
        android:textSize="8sp"
        app:layout_constraintBottom_toTopOf="@+id/textView11"
        app:layout_constraintStart_toEndOf="@+id/textView6"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0" />

    <TextView
        android:id="@+id/textView8"
        android:layout_width="47dp"
        android:layout_height="10dp"
        android:layout_marginEnd="-10dp"
        android:layout_marginLeft="17dp"
        android:layout_marginRight="-10dp"
        android:layout_marginStart="17dp"
        android:layout_marginTop="8dp"
        android:textColor="#a19d94"
        android:textSize="8sp"
        app:layout_constraintBottom_toTopOf="@+id/textView9"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.594"
        app:layout_constraintStart_toEndOf="@+id/textView7"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0" />

    <TextView
        android:id="@+id/textView9"
        android:layout_width="51dp"
        android:layout_height="11dp"
        android:layout_marginBottom="479dp"
        android:layout_marginEnd="24dp"
        android:layout_marginRight="24dp"
        android:textColor="#a19d94"
        android:textSize="8sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

    <TextView
        android:id="@+id/textView10"
        android:layout_width="99dp"
        android:layout_height="11dp"
        android:layout_marginBottom="479dp"
        android:layout_marginEnd="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginStart="8dp"
        android:textColor="#a19d94"
        android:textSize="8sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/textView11"
        app:layout_constraintHorizontal_bias="0.736"
        app:layout_constraintStart_toStartOf="parent" />

    <TextView
        android:id="@+id/textView11"
        android:layout_width="53dp"
        android:layout_height="11dp"
        android:layout_marginBottom="479dp"
        android:layout_marginEnd="88dp"
        android:layout_marginRight="88dp"
        android:textColor="#a19d94"
        android:textSize="8sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/textView9" />
</android.support.constraint.ConstraintLayout>
0
  1. Po pierwsze dlaczego chcesz umieszczać EditText na ImageView? Co jest w tym ImageView, czy to jakieś tło czy co?
  2. Po drugie zauważ, że możesz umieszczać layouty wewnątrz siebie. Innymi słowy możesz stworzyć wewnętrzny layout wielkości ImageView i wycentrować go względem głównego.
  3. Następnie umieszczasz komponenty wewnątrz tego wenętrznego layoutu i ustawiasz je względem tego layoutu.
  4. Nie ustawiaj pozycji komponentu na sztywno, wszystkie te ustawienia layout_marginBottom itd kończące się przyrostkiem dp usuń. Pozycja każdego komponentu musi być ustalona względem innych komponentów lub layotu.

Poza tym możesz spróbować się pobawić ConstraintLayout, poniżej masz artykuł w dokumentacji na ten temat:
https://developer.android.com/training/constraint-layout/index.html

0

Dziekuje, za bardzo szybka i konkretna odpowiedz. Tak jest to tlo, jednak nie pełnoekranowe. musze o tym poczytac, wlasnie tak chcialem to zrobic. stworzyc wewnetrzny layout do ImageView. szukalem, informacji na ten temat ale widocznie slabo, gdy stracilem juz nadzieje to napisalem, poszukam jeszcze raz, teraz wiem, ze tak mozna ;) Dziekuje bardzo za podpowiedz, dam znac jak mi poszlo niebawem :)

edit: wlasnie tym ConstraintLayout, mam to ustawione wszystko, nic biore sie do lektury, bo naprzeciagalem tych strzalek, a i tak wsio sie rozpada, widac trzeba sie douczyc :)

Ps. przepraszam za zly dzial forum, dziekuje Koziołek za przeniesienie w odpowiednie miejsce.

0

Są dwa nowe fajne atrybuty jeśli chcesz mieć dobrze skalowane na każdym ekranie tło niepełnoekranowe: layout_constraintWidth_percent i layout_constraintHeight_percent

Dzięki temu możesz określić, ile procent szerokości i długości ma mieć twoja kontrolka względem parenta (lub ekranu). Możesz np powiedzieć, że twój ImageView będzie zawsze rozciągać się na 25% szerokości i 50% wysokości ekranu, zamiast podawać sztywne wymiary. Na każdym ekranie będzie wyświetlać się dobrze. Analogicznie możesz wyskalować twój TextView i to by pewnie było najprostsze wyjście.

Poczytaj tu: https://developer.android.com/reference/android/support/constraint/ConstraintLayout.html o percent dimension

1 użytkowników online, w tym zalogowanych: 0, gości: 1