전체 글

1 2 3 4 5 6 7 8

[Android] selector

2020. 5. 29. 23:40

selector 종류


 

android:state_pressed = true (눌렀을 때)

 

android:state_checked = true (체크했을 때)

 

android:state_enabled = true (사용가능할 때)

 

android:state_focused = true (포커스 됐을 때)

 

android:state_selected = true (선택 됐을 때)

 

반대의 경우에는 false를 입력하시면 됩니다.

 

 

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_selected="true"
        android:drawable="@android:color/holo_blue_light"/>
</selector>

위와 같이 작성하여 선택되었을 때 색상을 변경시켜줄 수 있습니다.



다이얼로그(AlertDialog)

 


버튼을 눌러서 알림창을 띄우는 예제.

btn_dialog.setOnClickListener(new View.OnClickListener() {
	@Override
	public void onClick(View v) {
		AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);
		ad.setIcon(R.mipmap.ic_launcher);
		ad.setTitle("제목");
		ad.setMessage("Dialog 내용");
        
		ad.setPositiveButton("확인", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
            	
			}
		});
		ad.setNegativeButton("취소", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
            	
			}
		});
        	ad.setNeutralButton("나중에", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {

			}
		});
		ad.show();
	}
});

 

.setIcon() - 이미지 선택

.setTitle() - Dialog 제목

.setMessage() - Dialog 내용

 

.setPositiveButton()

.setNegativeButton()

.setNeutralButton()

각가의 함수를 이용해서 버튼 생성도 가능합니다.

 

"setNeutralButton()________________setNegativeButton()___setPositiveButton()"

와 같이 배치가 되므로 원하는 위치에 있는 함수에 작성하시면 됩니다.

 

 

 

 

 



스낵바(SnackBar)

 

 


토스트(Toast) 사용하기 : https://sseong66.tistory.com/36

 

스낵바와 토스트는 비슷한 기능을 하는데

토스트는 단순히 메시지를 띄우지만,

스낵바는 메시지 옆에 클릭할 수 있는 액션을 줄 수 있습니다.

 

스낵바를 사용하기 위해서는 build.gradle - dependencies에서 추가해줘야 합니다.

implementation 'com.android.support:design:28.0.0'

 

위의 implementation이 에러가 발생한다면

File -Project Structure - Dependencies - app에서 "+"를 눌러 Library Dependency에서 design을 검색해서

com.android.support로 된거를 선택해서 추가시켜주면 됩니다.

 

MainActivity에 코드 작성

btn_snackBar.setOnClickListener(new View.OnClickListener() {
	@Override
	public void onClick(View v) {

		Snackbar.make(v, "스낵바가 실행되었습니다!", Snackbar.LENGTH_SHORT).show();
	}
});

버튼을 누르면 SnackBar가 실행되도록 만들었습니다.

SnackBar는 make()함수를 통해서 구현이 가능하고 3개의 인자를 필요로 합니다.

첫 번째 인자는 View인 v를 넣어주고,

두 번째 인자는 표시할 내용,

세 번째 인자는 화면에 SnackBar가 표시될 시간을 나타냅니다.

  SnackBar.LENGTH_SHORT는 짧게! (약 2초)

  SnackBar.LENGTH_LONG은 길게! (약 5초)

 

마지막으로 .show()를 통해서 표시되도록하면 됩니다.

 

그리고 스낵바 메시지 옆에 버튼을 추가해주려면

btn_snackBar.setOnClickListener(new View.OnClickListener() {
	@Override
	public void onClick(View v) {

		Snackbar.make(v, "스낵바가 실행되었습니다!", Snackbar.LENGTH_SHORT).setAction("CLOSE", new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				// 버튼 클릭 시 실행한 내용 작성
			}
		}).show();
	}
});

.show() 전에 위와 같이 .setAction()을 써서 클릭했을 때 처리할 내용을 작성하시면 됩니다.

 



토스트(Toast) 사용하기

 

 


 

Toast는 Log처럼 쉽게 실행이 가능합니다.

Toast.makeText(MainActivity.this, "메시지", Toast.LENGTH_SHORT).show();

이와 같이 작성하시면 사용이 가능합니다.

 

makeText()함수를 이용하는데 3개의 인자가 사용됩니다.

첫 번째 인자는 Context정보를 넘겨줍니다.

  주로 this, getApplicationContext(), Activity명.this를 사용합니다.

두 번째 인자는 표시할 내용.

세 번째 인자는 화면에 Toast가 표시될 시간을 나타냅니다.

  Toast.LENGTH_SHORT는 짧게! (약 2초)

  Toast.LENGTH_LONG은 길게! (약 5초)

 

그리고 마지막으로 .show()를 통해서 표시되도록하면 됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



안드로이드 개발을하면서 필요한 로그 출력방법입니다.

코드가 실행되다가 로그를 지나가게 되면 로그캣에 메시지를 남기게 됩니다.

 

로그 5종류(v, i, d, w e)

verbose  -> Log.v

info       -> Log.i

debug    -> Log.d

warning  -> Log.w

error      -> Log.e

 

 

좌측하단을 보시면 로그캣(Logcat)이 있는데 클릭을 해보시면 다른 로그들이 많이 생성되는 것을 볼 수 있습니다.

 

코드에 위와 같이 첫번째 인자에는 제목, 두번째 인자에는 내용을 넣어서 작성하시고 실행을 하면

이와 같이 출력이 되는 것을 확인하실 수 있습니다.

 

로그캣을 통해서 실행이 되는지를 확인하거나 데이터를 출력해보실 수 있습니다.



onCreate() - Activity가 최초 실행 시 호출, onCreate를 통해서 초기화 설정

onStart() - Activity가 시작되기 직전에 호출

onResume() - Activity가 뜨고 동작 직전에 호출

onPause() - 다른 Activity가 활성화 되었을 경우 호출

onStop() - 다른 Activity로 완전히 가려졌을 경우 호출

onDestory() - Activity 삭제되기 직전에 호출

onRestart() - Activity가 onStop()된 후 시작되기 전에 호출



 

1. build.gradle(Module: app)에 implementation 추가

2. xml 작성

 


https://github.com/ybq/Android-SpinKit

 

ybq/Android-SpinKit

Android loading animations. Contribute to ybq/Android-SpinKit development by creating an account on GitHub.

github.com

위 링크를 통해 들어가시면 제작자분이 만든 여러 스피너 예제들을 확인하실 수 있습니다.

 

 

1. build.gradle(Module: app)에 implementation 추가

implementation 'com.github.ybq:Android-SpinKit:1.4.0'

 

2. xml 작성

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="#8986F1"
    android:gravity="center"
    tools:context=".MainActivity">

    <com.github.ybq.android.spinkit.SpinKitView
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/spin_kit"
        style="@style/SpinKitView.Large.CubeGrid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        app:SpinKit_Color="#36B2C2" />

</LinearLayout>

SpinKitView의 style에 원하는 형태의 이름을 넣어주시면 됩니다.

Large, Small을 이용해서 크기도 변경 가능합니다.

 

 


간혹 에러가 발생하는데

제 경우에는 버전이 맞지않아서

build.gradle(Project: ) - dependencies 내부 classpath 버전을

classpath 'com.android.tools.build:gradle:3.4.1'

이렇게 바꿔주니 정상 실행되었습니다.



안드로이드를 만들다보면 UI구현에 어려움이 발생할 수 있는데

해당 사이트의 안드로이드 오픈소스를 이용해서 원하는 UI를 쉽게 구현할 수 있습니다.

마음에 드는 소스를 클릭해서 들어가면 해당 예제의 사용방법이 상세하게 설명되어 있습니다.

 


 

 Android UI OpenSource 

https://kmshack.github.io/AndroidUICollection/

 

Android UI OpenSource

Collection of OpenSource for Android UI.

kmshack.github.io

 

 

 

 awesome-android-ui 

https://github.com/wasabeef/awesome-android-ui

 

wasabeef/awesome-android-ui

A curated list of awesome Android UI/UX libraries. Contribute to wasabeef/awesome-android-ui development by creating an account on GitHub.

github.com


[Java] this, super

2020. 4. 28. 00:26

this

this는 나 자신!
나 자신을 참조 하겠다.
즉, "자기 자신 클래스에 있는 변수 또는 메서드를 사용하겠다"라는 의미를 가진다.

 

super

super는 부모!
부모를 참조하겠다.
즉, "부모 클래스에 있는 변수 또는 메서드를 사용하겠다."라는 의미를 가진다.


' > Java' 카테고리의 다른 글

[Java] 4자리 수로 표시하기  (0) 2020.06.05
[Java] GUI 창닫기  (0) 2019.12.20
[Java] 데이터 타입  (0) 2019.11.13
[Java] 단축키  (0) 2019.11.13
[Java] Hello Java  (0) 2019.11.13

1. manifest 추가

2. network_security_config.xml 생성

3. network_security_config.xml에 코드 작성


1. manifest 추가

<application
	...
	android:networkSecurityConfig="@xml/network_security_config">

manifest파일에 <application> 태그에 networkSecurityConfig를 작성시켜준다.

 

2. network_security_config.xml 생성

res폴더에 xml폴더를 생성하고 network_security_config.xml 생성해준다.

 

3. network_security_config.xml에 코드 작성

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">ncov.mohw.go.kr</domain>
    </domain-config>
</network-security-config>

위와 같이 http주소를 가지는 사이트를 추가시켜준다.

사이트를 더 추가시킬 경우 <domain> 태그를 만들어 추가해준다.


+ Recent posts