家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

XamarinでAndroidアプリを作成(実践編)

はじめに

XamarinでAndroidアプリを作りながらプログラミングを勉強します。
この記事では、実際のプログラミングに関する内容をまとめます。
※用語の説明等、周辺知識はXamarinでAndroidアプリを作成(実践編)にまとめます。

 

 

 

実際のコード等

画像を表示する

Resources配下drawableに表示する画像を格納する。

activity_main.xmlを更新

<ImageView
android:src="@drawable/画像ファイル名"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/適当なid"/>

 

アプリのタイトルバーを表示しない

プロジェクト内のvalues/style.xmlを変更

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

 

バイブレーションを実行する 

プロジェクト内のAndroidManifest.xmlに追記

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

アクティビティの記載

Vibrator vibrator = (Vibrator)GetSystemService(Context.VibratorService);
vibrator.Vibrate(1000);・・・1秒間鳴動

 

カメラのフラッシュを点灯させる

プロジェクト内のAndroidManifest.xmlに追記

<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" />
<uses-permission android:name="android.permission.CAMERA" />

アクティビティの記載

using Android.Hardware;

var camera = Android.Hardware.Camera.Open();
camera.StartPreview();////カメラデバイス開始
var cameraParameters = camera.GetParameters();
cameraParameters.FlashMode = Android.Hardware.Camera.Parameters.FlashModeTorch;//フラッシュ点灯
camera.SetParameters(cameraParameters);//パラメータ設定
cameraParameters.FlashMode = Android.Hardware.Camera.Parameters.FlashModeOff;//フラッシュ消灯
camera.SetParameters(cameraParameters);//パラメータ設定
camera.StopPreview();//カメラデバイス停止
camera.Release();//カメラデバイス解放

 

音声ファイルを再生する

アクティビティの記載

Resources配下にrawディレクトリを作成し、音声ファイルを格納する。

using Android.Media;

 

MediaPlayer.Create(this, Resource.Raw.音声ファイル).Start();

 

スプラッシュ画面の作成

スプラッシュ画面は大まかに以下の手順で作成できます。

  1. スプラッシュ画面の作成
  2. スプラッシュ画面のアクティビティを作成
  3. MainActivityの記述を変更する

1.スプラッシュ画面の作成
Resources配下drawableフォルダに、スプラッシュ画面(.xml)を作成します。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<color android:color="@color/splash_background"/>
</item>
<item>
<bitmap
android:src="@使う画像など"
android:tileMode="disabled"
android:gravity="center"/>
</item>
</layer-list>

 

テーマを設定

styles.xmlのStyleタグのブロックに以下を追加します。

<style name="MyTheme.Splash" parent ="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">1.で作成した画面ファイル</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowActionBar">true</item>
</style>

 

2.スプラッシュ画面のアクティビティを作成

スプラッシュ画面の.csファイルの例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Support.V7.App;
using Android.Util;
using Android.Views;
using Android.Widget;
namespace OneButton
{
[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true)]
public class SplashActivity : AppCompatActivity
{
static readonly string TAG = "X:" + typeof(SplashActivity).Name;
public override void OnCreate(Bundle savedInstanceState, PersistableBundle persistentState)
{
base.OnCreate(savedInstanceState, persistentState);
Log.Debug(TAG, "SplashActivity.OnCreate");
}
// Launches the startup task
protected override void OnResume()
{
base.OnResume();
Task startupWork = new Task(async () => { await SimulateStartupAsync(); });
startupWork.Start();
}
// Simulates background work that happens behind the splash screen
async Task SimulateStartupAsync()
{
Log.Debug(TAG, "Performing some startup work that takes a bit of time.");
await Task.Delay(5000); // Simulate a bit of startup work.//5秒間表示して、MainActivityに処理を移行
Log.Debug(TAG, "Startup work is finished - starting MainActivity.");
StartActivity(new Intent(Application.Context, typeof(MainActivity)));
}
}
}

 

 
3.MainActivityの記述を変更
MainActivity.csファイルに記述されている「MainLauncher = true」という記述を削除します。

 

 

 

 

 

XamarinでAndroidアプリを作成(知識編)

はじめに

XamarinでAndroidアプリを作りながらプログラミングを勉強します。
この記事では、用語の説明等の知識に関する内容を順次更新していきます。
※実際のプログラミングに関する内容はXamarinでAndroidアプリを作成(実践編)にまとめます。

 

 

Xamarinとは

XamarinはC#を用いてAndroidやiOSのアプリケーションを開発するための開発環境です。クロスプラットフォームの開発環境であり、C#でAPIを使うことでネイティブアプリをVisual Studio上で開発します。

補足:ネイティブアプリ
ネイティブアプリは端末上で処理を実行するアプリケーションのことです。ネイティブアプリ以外の種類にはWebアプリがあります。
WebアプリはWebサーバ上で処理が実行され、その結果がブラウザを通して端末の画面上に表示されます。

ネイティブアプリの意味や定義 Weblio辞書

 

関連する用語等

アプリの画面

Androidの画面はレイアウトファイル(.axml)で定義されます。Visual StudioのAndroidデザイナーで、レイアウトファイルを編集できます。Androidでは画面のことをアクティビティと呼びます。
アクティビティはActivityクラスを継承して作成ができ、また、レイアウトファイルを編集することでも作成ができます。
原則として一つのアクティビティは一つのレイアウトファイルに対応します。

 

マニフェストファイル(AndroidManifest.xml)

Androidアプリに関するマニフェスト情報(アプリケーション名やバージョンなど)を記述するファイルです。

マニフェストファイルには、アプリの基本的な設定(アプリの名前やアイコンの画像、テーマ、対象OSバージョン、必要とする権限など)が記述されています。

 

Xamarin.Forms

Xamarin.FormsはXAMLというXMLで画面の記法で、画面を定義することで、iOS/Androidのどちらのプラットフォームでもそれぞれの環境に合わせて表示されます。

 

イベントハンドラ

イベントが発生した際に実行する処理

 

MVVM

MVVM(Model/View/ViewModel)の略でアプリの構造を表す言葉です。
ビューは画面、モデルはデータやロジック、ビューモデルはそれらを仲介するものです。