일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- server
- android
- java
- error
- 자바
- unity
- techEmpower
- Portfolio
- php
- MySQL
- NGINX
- 컴퓨터과학총론
- C lanuage
- it
- 프래그먼트
- 안드로이드
- centOS7
- 해석
- 개발
- C
- caddy
- ubuntu
- mariadb
- kakao
- 구글
- javascript
- 한글
- 번역
- H2O
- 개발자
- Today
- Total
개발모음집
[안드로이드 프로그래밍] Day12 본문
* 에러가 생길경우
Show only selected application을 No Filters로 하고 Log level을 Error로 변경
어플내에서 웹띄우기
MyWebView의 MainActivity.java
package com.example.tristan91.mywebview;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class MainActivity extends AppCompatActivity {
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
}
public void onButton1Clicked(View v) {
webView.loadUrl("http://m.naver.com");
}
}
MyWebView의 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.tristan91.mywebview">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
<!--
인터넷 네트워킹을 쓰려면 메니패스트에 권한을 추가해야한다.
-->
MyWebView의 activity_main.xml
<WebView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/webView"
android:layout_below="@+id/button"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
...
xml 디자인탭에서 WebView 추가하면 자동으로 소스생성
앱안에 html 띄우기
폴더 생성:
res에서 오른쪽버튼 - new - Android resource directory - directory name, resource type을 anim으로~
파일 생성
anim - new - animation resource file
file name= scale.xml
파일 내에 html소스 작성
sample.html
<html>
<head>
</head>
<body>
<div>
<h1>안녕하세요</h1>
<h2>웹페이지 테스트</h2>
</div>
</body>
</html>
MyWebView의 MainActivity.java
package com.example.tristan91.mywebview;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class MainActivity extends AppCompatActivity {
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
}
public void onButton1Clicked(View v) {
webView.loadUrl("file:///android_asset/sample.html");
}
}
스레드와 애니메이션
'/res/anim'은 애니메이션을 위한 액션 정보를 포함한 폴더(xml파일이 있다)
이 xml파일을 로딩을 하여 애니메이션객체생성, 이 객체를 스타트하면 뷰객체가 움직인다.
MyWebView의 MainActivity.java
package com.example.tristan91.myanim;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
}
public void onButton1Clicked(View v) {
Animation translate = AnimationUtils.loadAnimation(this, R.anim.translate); // translate.xml을 애니메이션 로딩
textView.startAnimation(translate);
}
}MyWebView의 translate.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="100%p"
android:toXDelta="0%p"
android:duration="1500"
/>
</set>
<!--
translate 이동하라 scale 확대,축소 rotate등등...
x방향에서 100%위치에서 0%위치까지 1.5초 동안 애니메이션 -->
텍스트뷰뿐만 아니라 전체를 애니메이션할 수 있다. 레이아웃에 id를 설정하고 로딩해주면 전체 애니메이션!
package com.example.tristan91.myanim;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onButton1Clicked(View v) {
Animation translate = AnimationUtils.loadAnimation(this, R.anim.translate); // translate.xml을 애니메이션 로딩
ViewGroup container = (ViewGroup) findViewById(R.id.container);
container.startAnimation(translate);
}
}
복잡한 애니메이션시
애니메이션이 끝나는 시점을 알아야 다음 애니메이션을 동작시킬 수 있다.
애니메이션리스너를 적용하면 된다.
책에 소스가 있다.
'Android' 카테고리의 다른 글
[안드로이드 프로그래밍] Day14 프레그레스바와 시크바 사용하기 (0) | 2016.06.09 |
---|---|
[안드로이드 프로그래밍] Day13 페이지 슬라이딩 (0) | 2016.06.08 |
[안드로이드 프로그래밍] Day11 (0) | 2016.06.08 |
[안드로이드 프로그래밍] Day09 (0) | 2016.06.07 |
[안드로이드 프로그래밍] Day07 ~ Day08 인플레이션 ~ 인텐트, 부가데이터 (0) | 2016.06.05 |