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での開発を始めたい方へ

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

コメント欄

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