Chap4. 안드로이드 인터페이스 기초01 - 뷰(View)
<TextView
android:text="hello!" />
<TextView
android:text="@string/hello_world" />
//string폴더에 id가 hello_world인 text를 읽어오겠다.
//string.xml
<String id="hello_world">hello!</String>
TextView textView1 = (TextView)findViewById(R.id.hello_world);
textView1.setText("hello!");
//findViewById()로 레이아웃에 배치한 위젯을 객체로 가져온 후 수행
: 내용이 많아 한 화면에 TextView의 내용을 표시할 수 없을 때.
ScrollView는 XML Design창에서
[Palette - Containers] or [Palette - Common] 에 있다.
ScrollView안에 TextView를 넣어주면 된다.
(Layout 내 드래그하거나 Component Tree를 이용)
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String msg = "Hello World!!!!!!!!!!!!\n" +
"Hello World!!!!!!!!!!!!\n" +
"Hello World!!!!!!!!!!!!\n" +
"Hello World!!!!!!!!!!!!\n" +
"Hello World!!!!!!!!!!!!\n" +
"Hello World!!!!!!!!!!!!\n" +
"Hello World!!!!!!!!!!!!\n" +
"Hello World!!!!!!!!!!!!\n" +
"Hello World!!!!!!!!!!!!\n" +
"Hello World!!!!!!!!!!!!\n";
TextView textView = findViewById(R.id.textView);
textView.setText(msg);
}
}
//activity_main.xml
<ScrollView
android:id="@+id/scrollView2"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="45sp" />
</LinearLayout>
</ScrollView>
TextView ⊂ LinearLayout ⊂ ScrollView 형태
(적용된 예시 이미지는 밑에 있음)
directory창을 Android모드가 아닌 Project모드로 바꾼다.
[app - src - drawable]에서 우클릭으로 [Show in Explorer]를 눌러 뜬 창에 이미지 파일을 복사해서 옮긴다.
//이렇게 안해도 되긴함. 괜히 파일 경로 꼬일까봐..
ImageView 코드 창에서 밑에 코드 추가.
android:src="@drawble/(파일명)"
으악 디자인 창에서 볼 때랑 다르게 사진이 가득 차버렸다.
사진 크기 조절을 위해 layout_width와 layout_height를 논리단위로 수정해 주었다. (원래 wrap_content였음)
//궁금한게 있는데 사진 크기 조절이 이게 최선인지 모르겠다.
원하는대로 이미지 넣기 성공!
: 사용자 클릭 이벤트 처리.
주요 속성
text : 버튼에 표시할 문자열
onClick : 버튼을 클릭하였을 때 동작할 메소드명 기입.
onClick Method 구현 (자바 코드로)
: public void 메소드명 (View 변수) { ... } 형태
ex. public void onClick (View v) { ... }
: 사용자 키보드 입출력 처리
EditText editText = (EditText)findViewById(R.id.editText);
String text = editText1.getText().toString(); //문자열일 경우
int num = Integer.valueof(myEdit.getText().toString()); //숫자일 경우
+) 문자열을 정수로 전환 : Integer.parseInt(text)
editText1.setText("문자열");
: 화면 하단에 일정 시간 동안 나타나는 안내용 출력창
//경우1 (긴코드)
Toast myToast = Toast.makeText(this, "Hello", Toast.LENGTH_SHORT);
myToast.show();
//경우2 (짧은코드)
Toast.makeText(this, "Hello", Toast.LENGTH_SHORT).show();
myToast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0);
myToast.setMargin(float, float);
myToast.setView(View view);
*Context? https://developer.android.com/reference/android/content/Context
//컨택스트의 개념은 잘 와닿지 않는다. 음.. 추상클래스라고 해야하나.
나중에 교수님한테 여쭤봐야지.