* xml코드는 비교적 간단해서 접은글로 숨겨 가독성을 높여봤습니다.
직접 풀어보기 6-2(뷰플리퍼)
<xml 코드>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_weight="15"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<Button
android:id="@+id/btnStart"
android:layout_weight="1"
android:text="사진보기 시작"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btnStop"
android:layout_weight="1"
android:text="사진보기 정지"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<ViewFlipper
android:id="@+id/viewFlipper"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/pie"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/q10"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/r11"/>
</ViewFlipper>
</LinearLayout>
<java 코드>
package com.cookandroid.myself6_2;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.MultiAutoCompleteTextView;
import android.widget.ViewFlipper;
public class MainActivity extends AppCompatActivity {
Button btnstart, btnstop;
ViewFlipper vFlipper;
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnstart = findViewById(R.id.btnStart);
btnstop = findViewById(R.id.btnStop);
vFlipper = findViewById(R.id.viewFlipper);
vFlipper.setFlipInterval(1000); //1초. (밀리 sec, 밀리 초 단위).
btnstart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vFlipper.startFlipping();
}
});
btnstop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vFlipper.stopFlipping();
}
});
}
}
직접 풀어보기 6-3
![]() |
![]() |
![]() |
![]() |
AVD 화면 |
<xml 코드> - 코드 연결이 중요해서 넣음.
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tabHost">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:layout_weight="1"
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/dog"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/dog"/>
<ImageView
android:id="@+id/cat"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/cat"/>
<ImageView
android:id="@+id/rabbit"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/rabbit"/>
<ImageView
android:id="@+id/shrek"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/shrek"/>
</FrameLayout>
<TabWidget
android:id="@android:id/tabs"
android:background="#FFEB3B"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</TabHost>
<java 코드>
package com.cookandroid.myself6_3;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TabHost;
public class MainActivity extends AppCompatActivity {
TabHost tabHost;
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabHost = findViewById(R.id.tabHost);
tabHost.setup();
TabHost.TabSpec tabSpecDog = tabHost.newTabSpec("Dog").setIndicator("강아지");
tabSpecDog.setContent(R.id.dog);
tabHost.addTab(tabSpecDog);
TabHost.TabSpec tabSpecCat = tabHost.newTabSpec("Cat").setIndicator("고양이");
tabSpecCat.setContent(R.id.cat);
tabHost.addTab(tabSpecCat);
TabHost.TabSpec tabSpecRabbit = tabHost.newTabSpec("Rabbit").setIndicator("토끼");
tabSpecRabbit.setContent(R.id.rabbit);
tabHost.addTab(tabSpecRabbit);
TabHost.TabSpec tabSpecShrek = tabHost.newTabSpec("Shrek").setIndicator("슈렉");
tabSpecShrek.setContent(R.id.shrek);
tabHost.addTab(tabSpecShrek);
}
}
▶ 복습 개념
- (xml) 구성 : 탭 호스트 - 리니어 - 탭 위젯 - 프레임 레이아웃
- (java) 탭 호스트 - 탭 스펙 !!
- 탭 위젯, 프레임레이아웃 : 지정 id(@android:id/tabs, tabcontent)
탭호스트는 일반도 가능. 이 경우, ID 찾고 (변수명).setup(); 해주어야 함.
실습 6-2(웹 뷰, webView)
![]() |
AVD 화면 |
<xml 코드>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/SiteName"
android:layout_weight="1"
android:layout_width="200dp"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/BtnGo"
android:layout_weight="1"
android:text="이동"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/BtnBack"
android:layout_weight="1"
android:text="이전"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<WebView
android:id="@+id/Web"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"/>
</LinearLayout>
<java 코드>
package com.cookandroid.practice6_2;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText siteName;
Button btnGo, btnBack;
WebView web;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("간단 웹브라우저");
siteName = findViewById(R.id.SiteName);
btnBack = findViewById(R.id.BtnBack);
btnGo = findViewById(R.id.BtnGo);
web = findViewById(R.id.Web);
web.setWebViewClient(new CookWebViewClient());
WebSettings webSet = web.getSettings();
webSet.setBuiltInZoomControls(true);
btnGo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
web.loadUrl(siteName.getText().toString());
}
});
btnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
web.goBack();
}
});
}
class CookWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
}
}
▶ 복습 개념
- (app) - (manifests) - (AndroidManifest.xml)
아이콘 변경 등 가능. 웹 뷰 활용해 인터넷 되게 하려면 다음 문구 삽입 필수.
<uses-permission android:name="android.permission.INTERNET"/>
>> 인터넷 허용해준다는 말.
'모바일 > android' 카테고리의 다른 글
[안드로이드프로그래밍6판] (컨텍스트 메뉴) 실습 7-2, 직접 풀어보기 7-2 (0) | 2021.10.22 |
---|---|
[안드로이드프로그래밍6판] (옵션 메뉴)실습 7-1 고대로 베낌, 직접 풀어보기 7-1 (0) | 2021.10.22 |
[안드로이드프로그래밍6판] 6장 자동완성 텍스트뷰(고대로 베껴 봄) (0) | 2021.10.17 |
[안드로이드프로그래밍6판] 6장 실습 6-1, 직접 풀어보기 6-1 (0) | 2021.10.17 |
[안드로이드프로그래밍6판] 5장 실습 5-2, 직접 풀어보기 5-5 (0) | 2021.10.16 |