良い日。私はこれを使用しようとしますhttps://developer.xamarin.com/recipes/android/other_ux/camera_intent/take_a_picture_and_save_using_camera_app/、しかし私はいくつかの問題があります。Xamarin AXMLのトラブル
XAML(下記)をAXMLに実装しようとしています(以下も)。しかし、私はCameraApp.Droid.MainActivityのOnCreate()メソッドのこの実装では例外があります。
私はそれをどのように実装すべきか分かりませんので、アンドロイドアプリでのAXMLの使い方を理解してください。私はAXMLに以下のコード(XAML)のようなものを実装する必要が
:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:cameraApp="clr-namespace:CameraApp;assembly=CameraApp.Droid"
x:Class="CameraApp.CameraPage">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="100"></RowDefinition>
</Grid.RowDefinitions>
<cameraApp:CameraButton Grid.Row="0"/>
<ScrollView Grid.Row="1">
<Label Text="gallery" />
</ScrollView>
</Grid>
</ContentPage>
私はAXML(CameraApp.DroidでMain.axml)にそれを書き換えるしよう
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<CameraButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="5" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/gallery"
android:layout_weight="2" />
</LinearLayout>
CameraApp.App.cs:
using Xamarin.Forms;
namespace CameraApp
{
public class App : Application
{
public App()
{
MainPage = new CameraPage();
}
}
}
CameraApp.CameraButton.cs:
using Xamarin.Forms;
namespace CameraApp
{
public class CameraButton : Button { }
}
CameraButtonRenderer.cs:
using CameraApp;
using CameraApp.Droid;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
[assembly: ExportRenderer(typeof(CameraButton), typeof(CameraButtonRenderer))]
namespace CameraApp.Droid
{
public class CameraButtonRenderer : ButtonRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
if (Control != null)
{
var nativeButton = Control;
nativeButton.Click += delegate
{
SetBackgroundColor(Android.Graphics.Color.LightGreen);
};
nativeButton.LongClick += delegate
{
SetBackgroundColor(Android.Graphics.Color.Red);
};
}
}
}
}
CameraApp.Droid.MainActivity.cs:
using Android.App;
using Android.Content.PM;
using Android.OS;
namespace CameraApp.Droid
{
[Activity (Label = "CameraApp", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
}
}
}
次のような例に従うことができます: https://github.com/XLabs/Xamarin-Forms-Labs/wiki/Camera –
@JonDouglasおかげで – Evgeniy175
スローされた例外を記載してください。 – matthewrdev