프로그래밍[Univ]/Android 9

[Android] get or set wrap content height

Android에서 wrap_content로 만든 뷰의 높이를 설정하거나 뷰의 높이를 얻어오는 소스코드이다. 기존에 소개했던 코드에서 약간의 변경 사항이 있다. 뷰에서 Margin값이 사용되었다면 Margin값만큼 기준이 되는 Width값을 줄여야 한다. 이를 반영한 코드가 아래의 코드이다. 아래의 코드는 높이 값을 가져오는작업을 한다. private int getHeightForWrapContent(Activity activity, View view) { DisplayMetrics metrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); ViewGroup.MarginLayoutPar..

[Android] Toast, Dialog

* Toast - 디버깅 메세지를 확인하거나 사용자에게 간단한 메세지를 출력 - 생성 : Toast.makeText(Context context, String message, int duration) - Method > public void setGravity(int gravity, int xOffset, int yOffset) // = Toast가 보이는 위치를 지정해준다.(x좌표 : -160~160 / y좌표 : -240~240) > public void setMargin(float horizontalMargin, float verticalMargin) // = 외부 여백을 지정하여 위치를 지정 - res/drawable 폴더에 디스플레이를 위한 XML을 지정하여 Toast를 꾸밀수 있다. shape..

[Android] Inflation & Activity추가

* Inflation(인플레이션) - XML레이아웃에 정의된 내용이 메모리상에 객체화 되는 과정 - 이 과정에 포함되있지 않는 객체는 참조할 수 없다.(Fatal Error) - setOnContentView()메소드에 의해서 실행된다. ⓐ 내부적으로 화면에 나타낼 View를 지정 ex) setOnContentview(R.out.main) ⓑ 메모리상에 XML레이아웃에 정의된 것을 객체화 * LayoutInflater : 화면의 일부를 다른 XML사용하는 것 ⓐ 메인레이아웃에 부분레이아웃이 들어갈 자리를 만든다. ⓑ 부분레이아웃을 만듬 ex) subView.xml을 생성해 레이아웃을 정의했다. 그리고 이 레이아웃은 LinearLayout으로 정의됬다. ⓒ 자바파일에서 부분레이아웃의 객체를 참조한다. (컨..

[Android] Java소스로 > EditBox의 변화 감지

* EditBox의 변화감지 - TextWatcher 인터페이스 사용 > ex) public class Exam2Activity extends Activity implements TextWatcher{ ... - TextWatcher 인터페이스의 메소드 @Override public void beforeTextChanged(CharSequence s, int start, int count, int after){ //CharSequence s : 현재 에디트텍스트에 입력된 문자열을 담고 있다. //int start : s 에 저장된 문자열 내에 새로 추가될 문자열의 위치값을 담고있다. //int count : s 에 담긴 문자열 가운데 새로 사용자가 입력할 문자열에 의해 변경될 문자열의 수가 담겨있다. /..

[Android] Java소스로 > ImageView의 이미지 변경

* ImageView의 이미지 변경 ⓐ 변경할 ImageView선택 : onView = (ImageView)findViewById(R.id.onView); ⓑ 원하는 이미지 정보 추출 : BitmapDrawable img = (BitmapDrawable)getResources().getDrawable(R.drawable.img1); // drawable폴더에서 img1의 정보를 가져옴 ⓒ View에 이미지 setting : onView.setImageDrawable(img); ※ 이미지 삭제시 : onView.setImageDrawable(null); -- Exam1Activity.java package exam.exam1; import android.app.Activity; import android...

[Android] Align & Layout & Scroll View / 정렬 & 레이아웃 & 스크롤 뷰

* 정렬 - layout_gravity : 전체화면에서의 정렬(부모 컨테이너에서의 정렬) - gravity : 뷰에서의 정렬 > 버튼이나 TextView의 크기가 wrap_content로 지정되 있으면, 그 자체로 꽉차 있기 때문에 gravity에 대한 정렬은 되지않는다. 또한 크기가 match_parent나 fill_parent로 되어있다면, layout_gravity에 의한 정렬은 되지 않는다. 차이점을 기억하자!! - baselineAligned(베이스 정렬) : 텍스트에서 아랫줄을 통일 시켜준다. - layout_weight(차일드 영역 분할) : 공간에 가중치를 주어서 분할한다. * LinearLayout 리니어 레이아웃 : 차례대로 가로나 세로방향으로 순서대로 출력해준다. - orientati..

[Android] 기본 위젯

* TextView : 텍스트를 출력하는 위젯 - textColor : RGB format에 따라서 값을 지정해준다 - textSize : dp, sp, px 단위로 사용이 가능하다 - textStyle : normal, bold, italic - typeface : text font를 지정해준다. (normal, sans, serif, monospace) - singleLine : text가 위젯 폭보다 큰 경우 강제로 한줄로 표시하게 한다. (...으로 생략) default는 false로 지정되있다. ※ 다국어 지원 모드 - res/values 폴더를 "res/value-en" 과 "res/value-ko"로 나눠지면 각각 단말 설정이 영어이냐 한국어냐에 따라서 다른 폴더를 참조하여 string값을 ..

[Android] 뷰 / 뷰그룹 / 위젯

* 개념 - 뷰 : 사용자 눈에 보이는 화면을 구성하는 요소들 여러개의 뷰가 하나의 Activity에 전개되어 하나의 화면을 이룬다. - 뷰그룹 : 여러개의 뷰를 포함하고 있는 것으로, 뷰를 유기적으로 묶어 놓은 것 > 컴포지트 패턴을 따른다.(뷰가 모여 뷰그룹이 되며, 뷰그룹 또한 뷰로써 취급이 가능하다) - 위젯 : 컨트롤 역할을 하는 뷰, 사용자 Interface를 구성한다. * 위젯에서 공통적으로 사용하는 속성 ⓐ layout_width, layout_height - 위젯의 가로와 세로 크기를 지정한다. - fill_parent(=match_parent) : 부모의 크기와 동일하게 체운다. - wrap_parent : 현재 자신의 내용을 표시하는 최소영역을 차지한다. - 일반 상수값 ※ 일반 상수..

[Android] 이벤트 리스너 달기 / Intent개념 / Activity 설명

* 이벤트 리스너 달기 ⓐ main.xml 에 정의된 버튼 등에 id 값을 부여한다.(이로써 자바코드에서 하나의 객체로 선택이 가능해진다.) ex) android:id = "@+id/Btn1" ※ @+id의 의미 - @ : 다른 리소스를 참조한다는 의미 - +id : 다른 리소스에 id값을 추가한다는 의미 ⓑ 자바코드에서 레이아웃 파일에 정의된 객체를 참조한다. > findViewById()메소드를 사용한다. > findViewById()메소드에 의해 반환되는 객체의 타입은 View의 상위클래스인 View클래스의 객체로 반환되기 때문에 사용하고자 하는 타입으로 형변환을 해줘야한다. ex) Button Btn1 = (Button)findViewById(R.id.Btn1); ※ R.id.Btn1 - 안드로이..