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

【Android】角丸のListViewを作成する方法をステップごとに解説


このチュートリアルでは、Androidアプリで角丸(ラウンドコーナー)のListViewを作成する方法を、サンプルコードとともにステップごとに解説します。カスタムdrawableリソースを利用することで、ListViewの背景に角丸デザイン・グラデーション・枠線を簡単に適用できます。

ステップ1 − 新規プロジェクトの作成

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

ステップ2 − レイアウトファイルへコードを追加

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">
    <ListView
        android:id="@+id/listView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_centerHorizontal="true">
    </ListView>
</RelativeLayout>

ステップ3 − MainActivity.java へコードを追加

src/MainActivity.java に以下のコードを追加します。ここでは、ArrayAdapterを使用して果物名の配列をListViewに表示しています。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView listView = findViewById(R.id.listView);
        String[] fruits = new String[]{"Mango","Apple","Grapes","PineApple","Banana","Kiwi", "Orange","Avocado","Strawberry"};
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_2, android.R.id.text1, fruits);
        listView.setAdapter(adapter);
        listView.setBackgroundResource(R.drawable.rounded_corners);
    }
}

ステップ4 − 角丸用のdrawableリソースを作成

res/drawable フォルダ内にdrawableリソースファイルを新規作成し、res/drawable/rounded_corners.xml に以下のコードを記述します。ポイントは次の3つです。
<corners>:四隅それぞれの角丸半径を16dpに設定
<gradient>:上から下へかかるグラデーションを定義
<stroke>:1pxの黒い枠線を描画

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="https://schemas.android.com/apk/res/android" android:shape="rectangle">
    <gradient
        android:angle="90"
        android:endColor="#C0C0C0"
        android:startColor="#808080" />
    <corners
        android:bottomLeftRadius="16dp"
        android:bottomRightRadius="16dp"
        android:topLeftRadius="16dp"
        android:topRightRadius="16dp" />
    <stroke
        android:width="1px"
        android:color="#000000" />
</shape>

ステップ5 − androidManifest.xml を確認

androidManifest.xml は以下のようになります。

<?xml version="1.0" encoding="utf-8"?>
<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」アイコンをクリックします。表示された選択肢から自分のモバイルデバイスを選択すると、端末の画面に角丸のListViewが表示されます。

【Android】角丸のListViewを作成する方法をステップごとに解説

  1. CSS3で角丸(丸みを帯びたコーナー)を作成する方法

    CSS3で角丸(丸みを帯びたコーナー)を作成するには、border-radiusプロパティを使用します。このプロパティに「24px」のような値を指定するだけで、要素の四隅を滑らかに丸めることができ、デザインの幅が大きく広がります。以下は、角丸を持つボックスと通常の直角コーナーのボックスを並べて表示するサンプルコードです。コード例<!DOCTYPE html> <html> <head> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sa

  2. HTML5 SVGで角丸の長方形を作成する方法【rx・ry属性の使い方】

    SVG(Scalable Vector Graphics)は、XMLを使用して2Dグラフィックスやグラフィカルなアプリケーションを記述するための言語です。記述されたXMLは、SVGビューアによって描画されます。現在、主要なWebブラウザの多くは、PNGやGIF、JPGなどの画像形式と同じようにSVGを表示できるようになっています。HTMLのSVGで長方形を描画するには、<rect>要素を使用します。さらに、角を丸くしたい場合はrx属性とry属性を指定します。この2つの属性に値を設定することで、長方形の四隅が滑らかに丸められます。実装例以下のコードを実行すると、HTML5 SVGで角