[Android] IntelliJ #7 backImg, VideoView, WebView

현지·2022년 2월 8일
0

BackgroundImage

  • 배경 이미지를 추가한다.
  • 배경 이미지위에 버튼, 이미지를 추가할 수 있다.

✅ res > drawable에 이미지 추가

bg라는 이미지를 추가한다.

✅ activity_main.xml

  • android:background="@drawable/bg" drawable에 bg이미지를 추가한다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/bg"
        tools:context=".MainActivity">
    <ImageView
            android:layout_width="274dp"
            android:layout_height="155dp"
            app:srcCompat="@drawable/sample"
            android:id="@+id/imageView"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.726"
            app:layout_constraintVertical_bias="0.129"/>
    <Button
            android:text="Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.925"
            app:layout_constraintHorizontal_bias="0.517"/>

</androidx.constraintlayout.widget.ConstraintLayout>

✅ MainActivity

background image만 확인할 것이기 때문에 MainActivity는 수정하지 않는다.

VideoView

✅ res > raw에 비디오 추가

video.mp4 파일을 추가한다.

✅ activity_main.xml

  • VideoView를 추가한다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    <VideoView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/videoView"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
    />

</androidx.constraintlayout.widget.ConstraintLayout>

✅ MainActivity

package com.example.sample21

import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.MediaController
import android.widget.VideoView

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val videoView = findViewById<VideoView>(R.id.videoView)

        videoView.setMediaController(MediaController(this))

  		//R.raw.파일이름 으로 영상을 불러온다.
        videoView.setVideoURI(Uri.parse("android.resource://" +packageName + "/" + R.raw.video))
    }
}

WebView

✅ AndroidManifest.xml에 인터넷을 사용하기 위해 추가한다.

<uses-permission android:name="android.permission.INTERNET" />

✅ activity_main.xml

  • WebView를 추가한다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    <WebView
            android:id="@+id/webView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:layout_editor_absoluteY="1dp"
            tools:layout_editor_absoluteX="1dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>

#1. Url 호출

✅ MainActivity

package com.example.sample22

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.webkit.WebView

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val webView = findViewById<WebView>(R.id.webView)

  		//원하는 url입력하기
        webView.loadUrl("https://m.naver.com")
    }
}

#2. 태그 호출

✅ MainActivity

package com.example.sample22

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.webkit.WebView

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val webView = findViewById<WebView>(R.id.webView)

  		//html태그로 작성하여 실행하기
        val html = "<html><head><meta charset=\"UTF-8\"></head><body>Hello World! 안녕하세요!</body></html>"
        webView.loadData(html, "text/html", "UTF-8")
    }
}

#3. html문서 호출

✅ assets > hello.html 추가하기

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>안녕</title>
    <script type="text/javascript">
            window.onload=function(){
                var c = document.getElementById('c');
                c.style.background='yellow';
            };
        </script>
</head>
<body>
<div id="c">
    Hello, 안녕하세요!! 반갑습니다!!
</div>
<hr size="1" width="90%">
<input type="button" value="경고창 보기" onclick="alert('경고창 보기');">
</body>
</html>

✅ MainActivity

package com.example.sample22

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.webkit.WebChromeClient
import android.webkit.WebView

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val webView = findViewById<WebView>(R.id.webView)
    	
 		//assets폴더에 hello.html을 불러와 실행하기
  		webView.loadUrl("file:///android_asset/hello.html")

        webView.settings.javaScriptEnabled = true

        webView.webChromeClient = WebChromeClient()
    }
}

0개의 댓글