본문 바로가기

[13일차] 그리기, 접근성 접근성 불편한 사람들이 사용할 수 있도록 하는것 ContentDescrption 그러면 tts라는 엔진을 이용해서 버튼을 눌렀을때, 그런 소리로 알려주는 거다. 앱을 제대로 만들려면 contentDescription 도 다 써야한다. resource를 만들어서 써야한다. contentdescription상태에 따라서 이벤트가 발생한다. 그 이벤트를 AccessibilityEvent가 받아서 알려준다. 뷰도 접근성과 관련해서 처리를 원래는 해줘야 한다. Finger Paint손으로 그리는 것 더보기
[13일차]View의 상태 저장 View 이 상태저장 super가 가지는 상위 parent 정보를 얻어서 해당 하는 차일드의 pacelable객체로 저장한다. super보고 복원하고 자기자신은 내 정보만 가지고 복원한다. 나는 super가 알아서 저장하는 parcelable객체를 가져와서 저장하면 되는거고, 그걸 던지면 알아서 복원해 하면된다. 그럼 결국 parcelable를 관리만 해주면 된다는 얘기다. onSaveInstanceState 객체가 생성된다. 이건 parceable을 리턴하면된다. onRestore... 이런함수가 pareceable을 가지고 정보를 복원한다. super의 parcelable을 관리해야하는데 이 클래스가 BaseSavedState라는 클래스다. super에서 받은 parcelable을 관리해주는 클래스다.. 더보기
[13일차] 커스텀 뷰 그래픽 속성을 통한 그리기에 효과를 주는 것을 배운다. 이걸... 어디에 쓰는거지 ? 안드로이드 색 지정하는 방법 비트맵 투명도 Leanear Gradient swipe Gradient CompositGradient Shader 만들기 자기만의 속성을 가지도록 속성을 하나 만든다. Xml 에서 속성을 만들꺼니까 declare Stlyeable attr name image format 은 reference xml 에 다가 저 속성을 정의 할 수 있다. appNs 에다가 app.image, 이렇게 놓고, 드로우 이후 속성을 정의 하는걸루 null이 아니면 TypedArray ta = context.obtail해준다. 크기는 내가 넘겨준 크기ㅗ로 무조건 하기 메져 스펙으로 뷰의 크기를 결정하기 위해ㅓ 메죠 호출할 때.. 더보기
[13일차]그래픽 실습. package com.chapark.samplegraphics; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; //점과 선을 이용해서 그리기를 한다. // 점을 0,0 에서 300,0으로 선을 그린다. //10을 증가 시키고 10을 감소시켜서 또 선을 그린다. // 반복 한다. x가 10씩 계속 증가 되고, y가 10씩 계속 감소된다. // 그래서 점을 나타내기 위해서 x,y가 필요하다. 근데 그리기에서는 float라고 나.. 더보기
[13일차] 그래픽 OpenGL ES 그리기 그리기그리기 그리기 Canvas RenderScript View 그리기 순서 뷰라고 하는 클래스를 이용해서 그리기가 이루어지는 과정 뷰를 화면에 배치를 했을 때, 기본적으로는 시스템이 윈도우를 만들어준다. 윈도우 매니져에 add View 라는 거를 해서 일반적으로 이걸 DecoView라고 한다. 뷰에 대가 LayoutParama 이런식으로 해서 윈도우에 속성을 정의해준다. 그림을 그릴 수 있는 객체가 필요하다. 이것은 Canvas라고 한다. 그림그리기 할때 여러가지 속성들을 Paint 라고 한다. 그래서 Canvas로 그릴때 속성정보는 Paint라는 것을 가지고 그림을 그리게 된다. Canvas를 만들어서 넘겨주는 함수는 onDraw()함수 이다. 화면 갱신하는함수를 invali.. 더보기
[12일차]Typeface 커스텀 폰트 라이센스가 대부분있지만 무료로 뿌리는 폰트 이다. fontFamily를 설정할때는 api 16부터 적용 된다. 커스텀 폰트 사용한 더보기
[12일차] 환경에 따라 달라지는 뷰 ORIENTATION Configuration 단말이 앱을 구동하는 환경 환경이 바뀌면 리소스가 바껴서 다시 구성하는것 기본적인 환경을 Configuration 이라고 한다. Configuration이 바뀌면 Activity 를 종료했다가 다시 실행한다. Resources객체에서 Configuration을 얻어 화면의 Orientation을 알거나 Display르 얻어와서 getRotation() 으로 화면 방향을 알 수 잇다. 단말이 구동되면 가로 모드인지 세로 모드인지 확인하는것 getResources().getConfiguration().orientation== Configuration.ORIENTATION.PORTRAYT 시작하자마자 수평으로 시작하게 하려면menifest에 screenOrentation ="lands.. 더보기
[12일차]SwipeRefereshLayout 새로 고침 UI 위로 쭉 당기면 새로고침 되는거 webView.loadurl 하면 불러온다. SwiperefreshLayout은 100이 되면 없ㅈ어 지도록 ProgressChanged 함수에서 없앤다. 색을 바꾸고 싶다면 refreshLayout.setColorSchemeColors(여기 넣어서) 바꿔주면 된다. 리소스를 넣어도 되고, 쩜쩜쩜 이기 때문에 칼라 파라미터를 마음대로 놓을 수 있다. 위치를 바꾸고 싶다면 따로 상속해서 커스텀 하면 된다. canChildScrollUp 이거를 구현 해서 override하면 된다. canViewVertically(-1)해서 구현하면된다. 이것이 이것에 핵심. 더보기
[12일차]팝업 윈도우,웹뷰 webview setContentView 하면 setWidth,setHeight 를 설정해줘야한다. setOutsideTouchable true로 해줘야 바깥을 터치하면 사라진다. 팝업 윈도우보다 리스트 팝업 윈도우를 쓰는 경우가 많다 웹뷰필요한 로그인을 하고 나서 토큰을 얻어서 하는 경우 로그인 연동 할 때, 필요하다. HTML페이지를 불러와서 렌더링해서 보여주고, 한다. 또 다른 케이스는 하이브리드 앱이다. 웹이 단말의 기능을 사용하는걸 하이브리드 앱이라고 한다. HTML 5 라고 해서 나온다. 단말의 정보를 이용해서 하이브리드 앱이라고 한다. 하이브리드 앱은 이슈가 많아서 넘어간다. 웹은 서버에서만 고치면 끝이라서 웹뷰의 장점이다. 주로 웹을 어디서 많이쓰냐면 데이터 디스커버리할때 이다. ebook로드 같은거 아.. 더보기
[12일차] DialogFragment 다이얼로그 프래그먼트 다이얼로그 프래그먼트 상속해서 사용한다. onCreateDialog메소드에서 다이얼로그 생성해서 리턴하면 된다. setCancelable() 을 가지고 있다. dismiss() 함수 호출하면 알아서 해준다. 간단하게 띄우기 프래그먼트에 라이프사이클 함수를 똑같이 갖는다. 백스택을 사용해서 활용할 수 있다. package com.chapark.mydialogfragment; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.NonNull; import a.. 더보기