Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Servlet
- 알고리즘
- SQL
- JSP
- Ajax
- websocket
- 웹게임
- JavaScript
- 비트코인
- HTML
- 웹소켓
- 배포
- express
- tiles.xml
- CSS
- PL/SQL
- AWS
- 블록체인
- Spring
- 암호화
- node.js
- RDS
- EC2
- phaser
- 도커
- Cookie
- autowired
- docker
- jQuery
- model1
Archives
- Today
- Total
記錄
사용자 인터페이스(UI) -2 본문
실습
1) 텍스트 내에서 autoLink 기능 사용
2) strings.xml에서 긴 텍스트 호출하여 원하는 줄 수만큼 출력 후 길면 요약
3) 폰트 변경
4) 이미지 뷰 출력 후 가로세로 비율 맞추도록 설정
5) EditText 뷰 출력하여 다이얼 패드로 전화번호 입력받기
6) 체크박스 출력 후 터치 시 이벤트 처리하여 텍스트 변경
.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
// LinearLayout으로 변경
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:orientation="vertical"
// orientation은 vertical로 설정(기본은 horizontal)
tools:context="com.kimjungkwon.uitestfinal.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/intro" // strings.xml에 저장해둔 intro 호출
android:autoLink="phone|web|email"/> // autoLink로 클릭시 바로 이동할 수 있도록 처리
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="@string/samplestring" // strings.xml에 설정한 samplestring을 호출
android:maxLines="4" // 최대 4줄 까지만 나오도록 함
android:ellipsize="end"/> // 끝에 ... 으로 줄여지도록 함
<TextView
android:id="@+id/fontTest" // 폰트 변경 처리를 위해서 id 값 부여
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Hello, X Mas!"/> // 짧으니까 stirngs.xml말고 직접 여기에 씀
<ImageView // 이미지 불러오기 위해서 ImageView 생성
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/tiger" // res/drawble에 저장해둔 이미지 파일을 똑같은 파일명으로 호출
android:adjustViewBounds="true" // 크기조정시 가로세로 비율 유지를 원하면 "true"
android:maxHeight="150dp"
android:maxWidth="150dp"
android:layout_marginTop="20dp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="phone" // 키보드 입력 타입 설정. 숫자 다이얼 패드만 원하므로 phone
android:hint="전화번호 입력" // EditText 공간에 나와있다가 치면 없어지는 부분 hint
android:layout_marginTop="20dp"/>
<CheckBox
android:id="@+id/checkboxTest" // 클릭시 이벤트 처리를 위해서 id 값 부여
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="is unchecked" // 기본적으로 표시되어 있을 내용
android:layout_marginTop="20dp"/>
</LinearLayout>
Strings.xml
<resources>
<string name="app_name">UITestFinal</string>
<string name="samplestring">
미래 핵심 기술로 꼽히는 거래 내역 분산 저장, 즉 블록체인 방식도 이미 공개된 기술이라
6천만 원이면 새 이름의 가상화폐를 만들 수 있는데도 수천억 원 규모로 거래된다는 겁니다.
실제 입법화까지 규제에 대한 정부 부처 간의 이견을 어떻게 조정할지 법무부의 행보가 주목됩니다.
</string>
<string name="intro">
전화번호는 010-0000-0000이고 홈페이지는 www.google.com이고 메일은 abcde@gmail.com입니다.
</string>
</resources>
.java
public class MainActivity extends AppCompatActivity {
CheckBox cb;
// 전역변수로 설정한 이유는 후에 setOnChekedChangeListener에서 cb를 사용해야 하기 때문이다
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 폰트 적용
TextView tv = (TextView) findViewById(R.id.fontTest);
Typeface tf = Typeface.createFromAsset(getAssets(), "Baubles.ttf");
tv.setTypeface(tf);
// CheckBox 이벤트 처리
cb = (CheckBox) findViewById(R.id.checkboxTest);
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) cb.setText("is checked");
else cb.setText("is unchecked");
}
});
// 조금 복잡하지만 일단 넘어가고 다음 장에서 학습
}
}
'Mobile > Android' 카테고리의 다른 글
레이아웃을 활용한 다양한 뷰 배치 - FrameLayout (0) | 2018.01.11 |
---|---|
레이아웃을 활용한 다양한 뷰 배치 - RelativeLayout, ConstraintLayout (0) | 2018.01.11 |
레이아웃을 활용한 다양한 뷰 배치 - LinearLayout (0) | 2018.01.11 |
사용자 인터페이스(UI) -1 (0) | 2018.01.10 |
기초 (0) | 2018.01.10 |
Comments