반응형

CardView

 

CardView는 아래와 같이 곡선 테두리와 그림자(음영)를 표시할 수 있는 형태의 레이아웃입니다.

 

종속성

CardView는 v7 Support library에 포함된 위젯으로

CardView를 사용하기 위해서는 Bundle.gradle(Module: app)에 다음과 같은 종속성을 추가해 주어야 합니다.

dependencies {
...
implementation 'com.android.support:cardview-v7:28.0.0'

...
}

 

CardView 속성

app:cardBackgroundColor - CardView의 배경색 지정

 

app:cardCornerRadius - 코너 radius 지정

 

app:cardElevation

- 음영 elevation 지정, elevation값이 클수록 음영을 표시하기 위한 공간이 더 필요하다.

app:cardMaxElevation

- 음영표시 영역 max값 지정이라고 되어 있는데, 왜 적용이 안되지?

 

app:contentPadding - CardView 패딩 지정

 

app:cardUseCompatPadding="true"

- 음영이 표시될 자동으로 확보 합니다. cardElevation 값이 클 수록 공간이 많이 확보됩니다.

 

app:cardPreventCornerOverlap - ?

 

 

그림자(음영) 표시

그림자(음영)이 표시되기 위해서는 CardView 주변으로 추가적인 공간이 필요합니다.

그림자가 표시될 영역을 확보할 수 있는 방법은 다음의 세가지 방법이 있습니다.

 

1. cardUseCompatPadding 속성을 통해 지정

app:cardUseCompatPadding="true"로 설정하여 음영을 그릴 공간을 자동으로 확보하도록 설정 합니다.

다만 이경우, cardElevation값이 클 수로 생각보다 많은 공간이 확보되어 CardView 영역이 작아 집니다. 

app:cardElevation="40dp"으로 설정한 모습입니다.

아래의 두가지 방법을 통해 고정된 공간을 확보할 수는 있으나, 반대로 음영을 표시할 공각이 부족하면

연결부분이 약간 부자연 스럽게 표시될수 있습니다.

 

2. 상위 layout의 padding을 통해 지정

상위 layout에 padding을 지정하고, clip 속성을 false로 지정해야 합니다.

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:clipChildren="false"
    android:clipToPadding="false"
    android:orientation="vertical"
    android:padding="8dp">

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:cardBackgroundColor="#ff0000ff"
        app:cardCornerRadius="10dp"
        app:cardElevation="5dp"
        app:cardPreventCornerOverlap="false"
        app:contentPadding="0dp">

 

3. CardView에 layout_marging을 지정합니다.

<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:cardBackgroundColor="#ff0000ff"
app:cardCornerRadius="10dp"
app:cardElevation="5dp"
app:cardPreventCornerOverlap="false"
app:contentPadding="0dp"
android:layout_margin="8dp">

 

기타 속성

[parent layout]

android:clipChildren"
android:clipToPadding

 

참고URL

https://developer.android.com/guide/topics/ui/layout/cardview

https://stackoverflow.com/questions/41615468/how-to-add-shadow-on-cardview-aligned-to-bottom-of-parent/46374054

http://devstory.ibksplatform.com/2018/05/android-cardview.html

반응형
반응형

View의 background 속성을 이용해 View의 모양 변경하기


layout xml의 적용 부분

<View
android:id="@+id/marker"
android:layout_width="match_parent"
android:layout_height="7dp"
android:background="@drawable/marker_bound_top" />


marker_bound_top.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item >
<shape android:shape="rectangle">
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp" />
<solid android:color="@color/default_marker_color"/>
</shape>
</item>
</layer-list>


shape Background 지정한 상태에서 필요에 따라 배경색상 변경

*setBackgroundColor()로 색상을 변경할 경우, xml로 지정한 내용이 무효화 된다.

아래와 같은 코드로 모양은 유지하면서 배경색만 변경 가능하다.

public void setMarkerColor(@ColorInt int color) {

Drawable backgroundOff = vMarker.getBackground();
backgroundOff.setTint(color);
vMarker.setBackground(backgroundOff);

}


반응형
반응형

Error type 3: Activity class {xxxx.MainActivity} does not exist.



package rename 후 빌드는 정상적으로 되나, app 실행 안되는 현상


$ adb shell am start -n "com.x.y.z/com.c.b.a.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

Error while executing: am start -n "com.x.y.z/com.c.b.a.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.x.y.z/com.c.b.a.MainActivity }

Error type 3

Error: Activity class {com.x.y.z/com.c.b.a.MainActivity} does not exist.


Error while Launching activity 



1. Android Studio 종료
2. .idea Directory  삭제
3. .iml 확장자 파일 삭제
4. Android Studio 재시작


http://1004lucifer.blogspot.com/2015/03/intellij-build-apk.html

반응형
반응형

Activity & Fragment & ViewModel Lifecycle


Activity Lifecycle

Fragment


onCreateView() 와 onActivityCreated() 사이에 onViewCreated() 호출됨


https://developer.android.com/guide/components/fragments



ViewModel Lifecycle

https://developer.android.com/topic/libraries/architecture/viewmodel



런타임 변경처리

https://developer.android.com/guide/topics/resources/runtime-changes?hl=ko

반응형
반응형

Android Platform Version and API LEVEL and 점유율



2019년 4월 3일자

반응형
반응형

구글은 어떻게 일하는가



구글의 일하는 방법과 조직문화 그리고, 인재를 관리하는 법등의 구글이 중요하게 생각하고 지향하는 가치에 대해 

사례들을 기반으로 서술하고 있다.


천천히 읽어보며, 이런 저런 생각을 해볼만 하다.


구글과 같은 회사가 우리나라에 없는 것 같지만. 

그럼 구글이 바라는 인재상을 가진 개발자는 또 얼마나 있을까?


좀 더 열심히 탐구하고 고민하며, 살아야 겠다.



반응형

+ Recent posts