2018.05.08 16:56


[Android] Layout겹치기


윈도우는 빈 채로 생성되며 빈 윈도우 안에 레이아웃을 채워 넣어 UI를 구성하는데 이때는 다음 메소드를 호출 한다.

 

void setContentView(int layoutResID)

void setContentView(View view, [ViewGroup.LayoutParams params])

void addContentView(View view, ViewGroup.LayoutParams params)

 

다음 예제는 2개의 xml파일을 겹쳐서 보여주는 예제이다.

 

overlay1.xml

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

 

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="바닥 레이아웃" />

    <Button

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="바닥의 버튼"

     />

 

</LinearLayout>

 

overlay2.xml

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

    android:gravity="center"

    android:background="#40ffff00"

>

    <TextView

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="이것은 위쪽의 레이아웃 입니다."/>

 

    <Button

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="위쪽 버튼"/>

 

</LinearLayout>

 

Overlay.java

 

package com.example.overlay;

 

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.Window;

import android.widget.LinearLayout;

 

public class Overlay extends Activity {

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        Window win = getWindow();

        win.setContentView(R.layout.overlay1);

        

        //전개자로 xml파일을 가져옴

        LayoutInflater inflater = (LayoutInflater)getSystemService(

                Context.LAYOUT_INFLATER_SERVICE);

        LinearLayout linear = (LinearLayout)inflater.inflate(R.layout.overlay2null);

          

        //파라미터를 세팅해줌

        LinearLayout.LayoutParams paramlinear = new LinearLayout.LayoutParams(

                LinearLayout.LayoutParams.MATCH_PARENT,

                LinearLayout.LayoutParams.MATCH_PARENT

                );

        

        //윈도우에 추가시킴

        win.addContentView(linear, paramlinear);

        

        

    }

 

 

}

 

실행화면

 

아래쪽 레이아웃은 위쪽 레이아웃 때문에 색상이 약간 변한다. 하지만 두 버튼은 독립적으로 동작해서 클릭 리스너를 추가 시킬 수 있다.





출처: http://gakari.tistory.com/entry/안드로이드-LayoutInflater를-활용한-레이아웃-겹치기 [가카리의 공부방]



Posted by injunech
2018.04.15 01:59


Android Studio build error about gradle

Could not find com.android.tools.build.gradle:3.0.0-alpha7


위와 같이 gradle 버전을 찾지 못할때

자신의 android studio 설치 폴더상의 gradle 버전을 확인해서 build.gradle 상에 설정해준다.


 

  1. open the file path(just as the log said): file:/C:/Users/dmin/Documents/android-studio/gradle/m2repository/com/android/tools/build/gradle/
  2. found this file

  3. just change classpath 'com.android.tools.build.gradle:3.0.0-alpha7' to classpath 'com.android.tools.build.gradle:* * * ' ; * * * is the exist gradle file;

  4. buildscript {
      repositories {
        ...
        // You need to add the following repository to download the
        // new plugin.
        google()
      }
    
      dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha5'
      } 
    }







Posted by injunech
2017.12.11 17:59


[ Android Studio] 한글깨짐, File Encoding 설정


1.  Android Studio and Project File Encoding 설정


 File > Settings > Editor > File Encodings

 단축키 (Ctrl + Alt + S)

 Default 설정으로 UTF-8 로 설정 된 상태인것을 확인 한다.



2. 한글 깨진 파일 한글 정상적으로 보이게 수정 

프로젝트 파일내의 특정 코드에서 한글이 깨진경우


> Project Build 시에 아래와 같은 Encoding 에러 발생


> 아래와 같이 한글이 깨진 파일 선택


> 우측 하단에 Encoding Type 선택해서 x-windows-949 로 선택하고 팝업창 뜨면 Reload 선택



> 다시 기존 UTF-8 을 사용해야 하기 때문에 UTF-8 로 다시 선택하고 팝업창 뜨면 Convert 선택.

> 위와같이 수행하면 한글이 Android Studio Editor 에서 잘 보이고, App 에서도 깨지지 않는다.









Posted by injunech
2017.03.07 04:59


Android Studio 에서 Android Version N 이상의 모바일단말을 구동시에 아래와 같은 에러가 발생하는경우 JDK 의 버전을 최신으로 업데이트 해주어야 한다.


Error:(1, 1) A problem occurred evaluating project ':app'.

java.lang.UnsupportedClassVersionError: com/android/build/gradle/AppPlugin : Unsupported major.minor version 52.0


# 문제해결 방법

Download latest java jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

In Android Studio , go to File > Project Structure > SDK Location > select JDK Location path to point to the new jdk installed (Ex: C:\Program Files\Java\jdk1.8.0_111 )




Posted by injunech
2017.03.05 10:30


Android Studio 단축키 Eclipse와 똑같이 설정하기


어쩔수 없이 안드로이드 스튜디오를 쓰는데, 역시 이전에 쓰던 버릇을 고치기가 쉽지 않다.
다른건 어쩔수 없다 쳐도 단축키는 바꿀수가 있는데...


"File > Settings ... " 메뉴로 가서...


"Keymap > Eclipse" 를 지정하면 이클립스에서 사용하던 단축키와 동일하게 바꿔 준다.

'Computer > Android' 카테고리의 다른 글

[Android] Gradle 이란?  (0) 2017.12.09
[Android Studio] JDK version 설정오류  (0) 2017.03.07
Android Studio 단축키 Eclipse와 똑같이 설정하기  (0) 2017.03.05
[Android] 특수문자 넣기  (0) 2017.02.27
[Android] View 절대 좌표값  (0) 2017.02.21
[Android] Color  (0) 2017.02.19


Posted by injunech