마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

constraintlayout 아이콘 뒷배경 질문 드립니다 ㅠㅠ

0 추천
상당히 퍼포먼스가 안좋은 안드로이드 환경에서 작업중에 있습니다 ㅠㅠ
그래서 constraintlayout 으로 모두 만들라는데...ㅠㅠ

위 화면처럼 겹쳐서 아이콘을 백그라운드로 넣으니 겹쳐서 그런지 위에 올라간거
처럼 색상이 달라 보입니다 ㅠㅠ 색상이 같아보이도록 하는 방법이 있을까요?
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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"
    android:background="#aaaaaa">

    <Button
        android:id="@+id/home"
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:layout_marginStart="110dp"
        android:layout_marginTop="10dp"
        android:layout_marginEnd="2dp"
        android:background="@drawable/home"
        app:layout_constraintEnd_toStartOf="@+id/top"
        app:layout_constraintHorizontal_bias="0.19"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />

    <TextView
        android:id="@+id/top"
        android:layout_width="0dp"
        android:layout_height="65dp"
        android:background="#FFCC00"
        android:gravity="center"
        android:text="테스트"
        android:textAlignment="center"
        android:textColor="#0D0D0D"
        android:textSize="11pt"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/home"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />




</androidx.constraintlayout.widget.ConstraintLayout>
감사합니다~
뱅스아부지 (410 포인트) 님이 2023년 7월 10일 질문

1개의 답변

+1 추천
 
채택된 답변

정확하게 원하는게 뭔지는 모르겠는데, ConstraintLayout 은 Constraint를 사용하시면 됩니다.

<TextView
        android:id="@+id/top"
        android:layout_width="0dp"
        android:layout_height="65dp"
        android:background="#FFCC00"
        android:gravity="center"
        android:text="테스트"
        android:textAlignment="center"
        android:textColor="#0D0D0D"
        android:textSize="11pt"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/home" <!-- 1 -->
        app:layout_constraintStart_toStartOf="parent" <!-- 2 -->
        app:layout_constraintTop_toTopOf="parent" />

 

1과 2는 둘다 뷰의 시작 위치와 관련된 constraint입니다. 따라서 두개가 충돌이 나고 있습니다. 둘 중의 하나만 사용하세요. 아마도 2번을 삭제하기를 원하시는 것 같아 보이네요.

그리고 참고로 ConstraintLayout이 복잡한 레이아웃을 구성할 때 유연하게 작업을 할 수 있는 장점이 있는 반면 Constraints를 기반으로 계산을 해야하기 때문에 다른 레이아웃에 비해 로딩시간이 더 걸릴 수 있습니다. 따라서 님처럼 단순하게 가로 세로만 있는 레이아웃의 경우라면 LinearLayout/RelativeLayout이 오히려 더 퍼포먼스가 좋을 수 있습니다. 정확한 거는 실제 성능테스트를 해보면 알겠지요.

spark (227,830 포인트) 님이 2023년 7월 10일 답변
뱅스아부지님이 2023년 7월 11일 채택됨
감사합니다~^^ 다른 레이아웃을 섞어야 할 것 같습니다
...