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

プログラムからAndroidのLinearLayoutにマージンを設定する方法【サンプルコード付き】

このチュートリアルでは、AndroidアプリにおいてLinearLayoutに配置するビューのマージン(余白)を、Javaコードから動的に設定する方法を解説します。XMLレイアウトを修正することなく余白を制御できるため、UIを動的に構築したい場合に非常に便利なテクニックです。それでは、順を追って見ていきましょう。

手順1:新規プロジェクトを作成する

Android Studioを起動し、[File] → [New Project]を選択して、必要な項目を入力し新しいプロジェクトを作成します。

手順2:activity_main.xmlにレイアウトを定義する

res/layout/activity_main.xmlに以下のコードを記述します。ここでは、縦方向(vertical)のLinearLayoutのみを配置したシンプルな構造にしています。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" />

手順3:MainActivity.javaでマージンを設定する

src/MainActivity.javaに以下のコードを追加します。

package app.tutorialspoint.com.sample;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout ll = findViewById(R.id.linearLayout);

        // レイアウトパラメータを生成(横幅:親に合わせる/高さ:内容に合わせる)
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
             LinearLayout.LayoutParams.MATCH_PARENT,
             LinearLayout.LayoutParams.WRAP_CONTENT);

        // マージンを設定(左:30px/上:20px/右:30px/下:0px)
        layoutParams.setMargins(30, 20, 30, 0);

        Button okButton = new Button(this);
        okButton.setText("some text");

        // LayoutParamsを渡してボタンをLinearLayoutに追加
        ll.addView(okButton, layoutParams);
    }
}

コードのポイント

  • LinearLayout.LayoutParams … ビューのサイズや位置情報を管理するクラスです。ここでは「横幅はMATCH_PARENT(親いっぱい)」「高さはWRAP_CONTENT(内容に合わせる)」を指定しています。
  • setMargins(left, top, right, bottom) … 左・上・右・下の順にピクセル(px)単位でマージンを指定します。dp(密度非依存ピクセル)に変換して指定すると、画面密度の異なる端末でも一貫した見た目になります。
  • addView(view, params) … ボタンをLinearLayoutに追加する際にLayoutParamsを渡すことで、設定したマージンが適用されます。

※ 本サンプルは旧サポートライブラリ(android.support.v7)を使用していますが、現在のAndroid StudioではAndroidX(androidx.appcompat.app.AppCompatActivity)が標準となっています。お使いの環境に応じてimport文を読み替えてご利用ください。

手順4:AndroidManifest.xmlを確認する

androidManifest.xmlには、以下のようにアクティビティを宣言します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.tutorialspoint.com.sample">

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

    <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スマートフォンがPCに接続されているものとします。

Android Studioでプロジェクト内のアクティビティファイルを開き、ツールバーのRunアイコンをクリックします。デバイス選択画面で接続したスマートフォンを選択すると、端末にボタンが表示され、コードで指定したマージン(余白)が正しく反映されていることが確認できます。

プログラムからAndroidのLinearLayoutにマージンを設定する方法【サンプルコード付き】

  1. 【Android】プログラムでアプリケーションを終了する方法|finish()とSystem.exit(0)の使い方

    はじめにこの記事では、Androidアプリをプログラム(コード)から終了させる方法を解説します。ボタンをタップするとアプリが終了するシンプルなサンプルアプリを通じて、実装手順をステップごとに見ていきましょう。ステップ1:新規プロジェクトの作成Android Studioを起動し、「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。ステップ2:レイアウトファイルの編集res/layout/activity_main.xml に以下のコードを追加します。このレイアウトには、ガイダンス用のTextViewと、アプリを終了するためのB

  2. AndroidでVPNを設定する方法【専用アプリ・OpenVPNの手順を徹底解説】

    モバイルデバイスでのブラウジングをもっと安全にしたいと思いませんか?それとも、Netflixの地域制限を回避したいだけでしょうか?VPN(仮想プライベートネットワーク)はそのどちらにも最適な選択肢です。では、AndroidでもVPNを設定できるのでしょうか? この記事では、AndroidデバイスにモバイルVPNをインストールして使う方法、そしてどのVPNを選ぶべきかについて詳しく解説します。さらに、スマートフォンでVPNの使用を避けるべき場面についても触れていきます。 なぜモバイルでVPNを使うのか? VPNといえば、デスクトップPCやルーター向けのツールというイメージが強いかもしれません。で