Создаём приложение для Android (Xamarin Forms C#)

Программирование, Хакинг, Безопасность, Софт, Железо, а также всё связанное с компьютерами
Аватара пользователя
BDK
Сообщения: 3650
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 386 раз

Создаём приложение для Android (Xamarin Forms C#)

Сообщение BDK »

Подключает смартфон к компьютеру по USB.

Запускаем Visual Studio. Создаём новый проект. Выбираем типа проекта "Мобильное приложение Xamarin.Forms"
Изображение

Задаём имя проекта и путь
Изображение

Выбираем типа приложение "Пустое"
Изображение

Правой кнопкой по проекту и в выпадающем меню выбрать "Добавить" и затем "Создать элемент..."
Изображение

Выбрать "Страница содержимого"
Изображение

Открыть созданный файл
Изображение

Вписать "x:Name="valueLabel"" как показано на картинке
Изображение

Открыть файл "App.xaml.cs" как показано на рисунке
Изображение

Заменить содержимое следующим кодом

Код: Выделить всё

using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using Xamarin.Essentials;

namespace App3
{
    public partial class App : Application
    {
        public App()
        {
            InitializeComponent();

            int w = (int)DeviceDisplay.MainDisplayInfo.Width;
            int h = (int)DeviceDisplay.MainDisplayInfo.Height;

            Page1 pg = new Page1();
            Label ob = pg.Content.FindByName("valueLabel") as Label;
            ob.Text = "Разрешение экрана вашего устройства " + w.ToString() + "x" + h.ToString();
            MainPage = pg;
        }

        protected override void OnStart()
        {
        }

        protected override void OnSleep()
        {
        }

        protected override void OnResume()
        {
        }
    }
}
Нажать кнопку запуска программы на выполнение
Изображение

На вопрос появившийся на телефоне разрешить ли установку приложения по USB ответить "Разрешить".

Созерцать на телефоне результат работы программы.
Изображение
Аватара пользователя
Андрей
Архитектор
Сообщения: 7107
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 508 раз
Поблагодарили: 455 раз

Re: Создаём приложение для Android (Xamarin Forms C#)

Сообщение Андрей »

А можешь выложить apk-файл?
Аватара пользователя
Андрей
Архитектор
Сообщения: 7107
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 508 раз
Поблагодарили: 455 раз

Re: Создаём приложение для Android (Xamarin Forms C#)

Сообщение Андрей »

При повороте устройства возможно обновлять строку?
Аватара пользователя
BDK
Сообщения: 3650
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 386 раз

Re: Создаём приложение для Android (Xamarin Forms C#)

Сообщение BDK »

В принципе APK файл уже автоматически создался после того как мы запустили приложение на выполнение. Его можно найти по пути:
Изображение

Он обновляется каждый раз когда мы запускаем приложение на выполнение-отладку.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7107
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 508 раз
Поблагодарили: 455 раз

Re: Создаём приложение для Android (Xamarin Forms C#)

Сообщение Андрей »

BDK, мне при повороте устройства нужно заново получать разрешение, чтобы отрисовывать доску с другим масштабом.

15 мегабайт - жирнейший файл, хотя по сути ничего не делает... не особо хороший компилятор.
Аватара пользователя
BDK
Сообщения: 3650
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 386 раз

Re: Создаём приложение для Android (Xamarin Forms C#)

Сообщение BDK »

При повороте устройства возможно обновлять строку?
В файле App3.xaml.cs заменяем код на следующий (можно отсюда скопировать и заменить)

Код: Выделить всё

using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using Xamarin.Essentials;

namespace App3
{
    public partial class App : Application
    {
        public App()
        {
            InitializeComponent();
            MainPage = new Page1();
            OnChanges();
        }

        public void OnChanges()
        {
            int w = (int)DeviceDisplay.MainDisplayInfo.Width;
            int h = (int)DeviceDisplay.MainDisplayInfo.Height;

            Page1 pg = MainPage as Page1;
            Label ob = pg.Content.FindByName("valueLabel") as Label;
            ob.Text = "Разрешение экрана вашего устройства " + w.ToString() + "x" + h.ToString() + ". Ориентация: " + DeviceDisplay.MainDisplayInfo.Orientation;
        }

        protected override void OnStart()
        {
        }

        protected override void OnSleep()
        {
        }

        protected override void OnResume()
        {
        }
    }
}
Кроме этого заменяем код в файле MainActivity.cs на следующий

Код: Выделить всё

using System;

using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.OS;
using Xamarin.Essentials;
using Xamarin.Forms;

namespace App3.Droid
{
    [Activity(Label = "App3", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize )]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        App apl;
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            apl = new App();
            LoadApplication(apl);
            this.ConfigurationChanged += OnConfigChanged;
        }
        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }

        protected void OnConfigChanged(object sender,System.EventArgs e)
        {
            apl.OnChanges();
        }
    }
}
Запускаем на выполнение.
15 мегабайт - жирнейший файл, хотя по сути ничего не делает... не особо хороший компилятор.
Ну насколько понимаю он там тащит с собой всё что связано с формами. Наверное если повыкидывать ненужное файл станет поменьше но я пока таким не заморачивался.
Аватара пользователя
BDK
Сообщения: 3650
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 386 раз

Re: Создаём приложение для Android (Xamarin Forms C#)

Сообщение BDK »

Если нужны комментарии по коду - спрашивай.
И еще - по сути программирование в Xamarin Forms я сам изучаю тут же в процессе - я его раньше особо не касался. Но я очень хорошо знаю сам C#. Так что по C# могу много и подробно объяснять. А по Xamarin Forms я сам гуглю перед тем как делать примеры. В общем будем изучать его вместе.

Если интересна графика на OpenGL то тоже создам отдельную тему. Там у меня опыта побольше чем в Xamarin Forms