[Android] IntelliJ #7 backImg, VideoView, WebView


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
    背景画像のみチェックするので、MainActivityは変更しません.

    VideoView



    ビデオをres>rawに追加
    video.mp 4ファイルを追加します.
    ✅ 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()
        }
    }