Androidアプリ開発

XMLで定義したオブジェクトのサイズを
変更する方法

この記事は約7分で読めます。
記事内に広告が含まれています。
スポンサーリンク

こんにちは、まっさん(@Tera_Msaki)です。

この記事はAndroidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Javaでの開発経験、XML構文規則、Androidのアプリ開発経験がある方を対象としています。
Androidのアプリ開発でお役にたててれば、嬉しいです。
これからAndroidのアプリ開発やJavaでの開発を始めたい方への案内は、記事の最後で紹介します

◎テーマ
動的にXMLで定義した画面上のオブジェクトのサイズを変更したい

◎ポイント
レイアウトXMLで定義したオブジェクトのサイズをユーザが任意でサイズ変更できるようにするためには、Javaコーディングでレイアウトパラメータを変更する必要があります。

◎対応前

画面右上にある走行軌跡のサイズは300dbで固定

◎対応後

画面右上にある走行軌跡のサイズは400dbを指定

◎レイアウトXML(activity_main.xml)

	:
<com.github.mikephil.charting.charts.ScatterChart
android:id="@+id/locus"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_alignParentEnd="true"
android:layout_margin="4dp"
android:background="@drawable/bg_grey0" />
	:

◎Java 制御部分のコーディング(MainActivity.java)

private int LOCUS = 300;
	:
//サイズ(100以下は無効)
ViewGroup.LayoutParams params = locus.getLayoutParams();
params.width  = (int)(context.getResources().getDisplayMetrics().density * (Math.max(LOCUS, 100)));
params.height = (int)(context.getResources().getDisplayMetrics().density * (Math.max(LOCUS, 100)));
locus.setLayoutParams(params);
	:

LayoutParamsのサイズ(width, height)の指定は Pixel ですので、Pixel → DP変換を行って指定します。
上記コーディングでは、固定変数(LOCUS)に初期値300(DP)を指定していますが、システムパラメータのLOCUSに設定する処理を行い、任意で指定したサイズで描画するようにしています。

これからAndroidのアプリ開発やJavaでの開発を始めたい方へ

アプリケーション開発経験がない方や、アプリケーション開発経験がある方でも、Java や C# などのオブジェクト指向言語が初めての方は、Android のアプリ開発ができるようになるには、かなりの時間がかかります。オンラインスクールでの習得を、強くおススメします。

未経験者からシステムエンジニアを目指すのに最適かと、
まずは無料相談から♪

未経験者からプログラマーを目指すのに最適かと、
まずは無料カウンセリングから♪

カリキュラムとサポートがしっかりしています、
お得なキャンペーンとかいろいろやっています♪

ゲーム系に強いスクール、UnityやUnrealEngineを習得するのに最適かと、
まずは無料オンライン相談から♪

参考になったら、💛をポッチとしてね♪

スポンサーリンク
msakiをフォローする
スポンサーリンク

コメント欄

タイトルとURLをコピーしました