Android
 Computer >> コンピューター >  >> プログラミング >> Android

AndroidでImageViewに境界線(ボーダー)を設定する方法

AndroidでImageViewに境界線を設定する方法

このチュートリアルでは、AndroidアプリのImageViewに境界線(ボーダー)を設定する方法を解説します。XMLの<shape><stroke>を活用すれば、Javaコードをほとんど追加することなく、画像の周囲に色付きの枠線を簡単に描画できます。

ステップ1:新規プロジェクトを作成する

Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目を入力して、新しいプロジェクトを作成してください。

ステップ2:activity_main.xml にコードを追加する

res/layout/activity_main.xml を以下のように編集します。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="@layout/image_border"
        android:padding="7dp"
        android:scaleType="centerInside"
        android:src="@drawable/image" />
</RelativeLayout>

ポイントは、ImageViewのandroid:background属性に、後ほど作成する境界線用リソース(@layout/image_border)を指定し、android:padding="7dp"で画像と枠線の間に余白を持たせている点です。

ステップ3:MainActivity.java にコードを追加する

src/MainActivity.java には以下のコードを記述します。今回は特別な処理は不要で、レイアウトを読み込むだけです。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

ステップ4:image_border.xml を作成する

res/layout フォルダ内に「image_border.xml」という名前の新しいレイアウトリソースファイルを作成し、以下のコードを記述します。

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent">
    <stroke
        android:width="8dp"
        android:color="#01fee9" />
</shape>

<stroke>要素が枠線の正体です。ここでは幅8dp・カラーコード#01fee9(明るいシアン系)の線を指定しています。太さや色はお好みに合わせて自由に変更できます。

ステップ5:AndroidManifest.xml にコードを追加する

最後に、androidManifest.xml を以下のように記述します。

<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        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>

アプリを実行して結果を確認する

それではアプリを実行してみましょう。実機のAndroidスマートフォンをパソコンに接続しているものとします。Android Studioでプロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックしてください。デバイス選択画面で接続したスマートフォンを選ぶと、端末の画面に境界線付きのImageViewが表示されたデフォルト画面が確認できます。

AndroidでImageViewに境界線(ボーダー)を設定する方法

  1. AndroidでAsyncTaskにタイムアウトを設定する方法【サンプルコード付きで解説】

    はじめに このチュートリアルでは、AndroidアプリでAsyncTaskにタイムアウトを設定する方法を、実際に動作するサンプルコードとともに解説します。EditTextに入力した秒数だけバックグラウンド処理をスリープさせ、その間の進捗状況をProgressDialogで表示するシンプルなデモアプリを作成していきます。 実装手順 ステップ1:新規プロジェクトを作成する Android Studioを開き、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。 ステップ2:activity_main.xml にレ

  2. JavaのJCheckBoxに境界線(ボーダー)を設定する方法

    JCheckBoxとは JCheckBoxはJToggleButtonを拡張したSwingコンポーネントの一つで、チェック済み(ON)と未チェック(OFF)の2つの状態を持つ選択肢を表します。複数のチェックボックスを配置した場合、それぞれが独立して動作するため、任意の組み合わせで同時に選択することが可能です。 境界線を設定する手順 JCheckBoxに境界線(ボーダー)を設定するには、次の2つのメソッドを使用します。 setBorder():コンポーネントに境界線を設定するメソッド。BorderFactoryクラスのファクトリメソッドを使って、さまざまな種類のボーダーを簡単に生成できます。