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

【Android】EditTextに画像(アイコン)を追加する方法をわかりやすく解説

この記事では、AndroidアプリのEditTextに画像(アイコン)を表示する方法を、サンプルコードとともにステップごとに解説します。検索ボックスなどでよく見かける「入力欄の右側に虫眼鏡アイコンを表示する」あのUIは、android:drawableRight属性を使うだけで簡単に実装できます。

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

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

ステップ2:レイアウトファイル(activity_main.xml)を編集する

res/layout/activity_main.xml に以下のコードを追加します。ポイントは android:drawableRight 属性です。ここにシステム標準の検索アイコン(ic_menu_search)を指定することで、EditTextの右側に画像が表示されます。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:layout_marginTop="30dp"
    tools:context=".MainActivity">
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:paddingStart="5dp"
        android:drawableRight="@android:drawable/ic_menu_search"
        android:paddingLeft="5dp" />
</LinearLayout>

ステップ3:MainActivity.java を編集する

src/MainActivity.java には、以下のようにレイアウトを読み込むだけのシンプルなコードを記述します。

package com.example.sample;
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:背景用のドローアブル(background.xml)を作成する

EditTextを見栄えよくするために、白背景・青枠線・角丸スタイルのドローアブルを定義します。drawable/background.xml として以下のファイルを作成してください。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="https://schemas.android.com/apk/res/android">
    <solid android:color="#FFFFFF" />
    <stroke android:width="1dp" android:color="#2f6699" />
    <corners android:radius="10dp" />
</shape>

ステップ5:AndroidManifest.xml を確認する

最後に、Manifests/AndroidManifest.xml が以下のようになっていることを確認します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.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)アイコンをクリックします。表示された選択肢から接続中のモバイルデバイスを選択すると、実機の画面にEditTextとその右側に表示された検索アイコンが確認できます。

このように drawableRight 属性を使えば、コードをほとんど書かずにEditTextへ画像を追加できます。左側に表示したい場合は drawableLeft、上下なら drawableTopdrawableBottom を使うことで、同様にアイコンを配置可能です。ぜひ自分のアプリでも試してみてください。

  1. 【Android開発】角丸のEditTextを作成する方法をステップごとに解説

    はじめにこの記事では、Androidアプリで角が丸い(角丸)EditTextを作成する方法を、具体的なコード例とともに解説します。drawableリソースにカスタムのshapeファイルを定義し、それをEditTextの背景に設定するだけで、簡単におしゃれな角丸デザインを実現できます。手順1:新規プロジェクトを作成するまず、Android Studioで新しいプロジェクトを作成します。メニューから「File → New Project」を選択し、必要な情報を入力してプロジェクトを作成してください。手順2:レイアウトファイル(activity_main.xml)を編集する次に、「res/layou

  2. Tkinterで画像を追加・表示する方法を解説!Pillowとfiledialogの使い方

    画像は、あらゆるアプリケーションにおいて非常に有用な要素のひとつです。Pythonでは、Pillow(PIL)パッケージを利用することで、Tkinterアプリケーション内でも簡単に画像を扱うことができます。画像の読み込みや抽出、画像ペインの設定など、便利な機能が多数用意されています。 サンプルコード:ダイアログで選択した画像を表示する 以下の例では、ユーザーがファイルダイアログから画像を選択し、その画像をLabelウィジェットを使ってウィンドウ上に表示します。 #Tkinterライブラリをインポート from tkinter import * from tkinter import ttk