Intereting Posts
Как мы можем обрабатывать ошибки HTTP, например: 401, 403, 404, 500 в android.webview? Что означает андроид getIntrinsicHeight и getIntrinsicWidth? Как настроить пользовательский просмотр обновления в SwipeRefreshLayout? Android прокрутки вверх скрыть вид и прокрутить вниз показать эффект вида, как твиттер Android. Включите Wi-Fi-модем без SIM-карты или подключения к Интернету. WebView слишком много памяти Android-приложение для продажи приложений с использованием другого ключа подписи RuntimeException из Google Analytics для Android «отправка сообщения обработчику по мертвой теме» Попытка повторного открытия уже закрытого объекта: SQLiteDatabase: Можно ли использовать Dropbox, Google Диск, Skydrive и т. Д. В качестве серверного пространства? Воспроизведение звука назад Android Facebook SDK: Key hash не соответствует сохраненным хэшам при загрузке google play Запуск Eclipse из пакета ADT в Ubuntu 14.04 Отмена динамического уведомления в Android при выборе уведомления Резервное копирование Android-устройства с использованием adb

Как создать пользовательские представления в xamarin

Есть ли какой-либо учебник, который позволит мне создавать пользовательские представления в xamarin? Я хочу создать функцию масштабирования зума для моего приложения Android с помощью xamarin.

Я пробовал следующий код, но его не работает, я всегда получаю android.view.InflateException: Binary XML file line #1: Error inflating class LA_Application.ZoomView error

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Android.App; using Android.Content; using Android.OS; using Android.Runtime; using Android.Util; using Android.Views; using Android.Widget; using Android.Graphics; namespace LA_Application { public class ZoomView : FrameLayout { private ScaleGestureDetector mScaleDetector; private static float mScaleFactor = 1.0f; public ZoomView (Context context) : base (context) { Initialize (); } public ZoomView (Context context, IAttributeSet attrs) : base (context,attrs) { Initialize (); } public ZoomView (Context context, IAttributeSet attrs, int defStyle) : base (context, attrs, defStyle) { Initialize (); } void Initialize () { mScaleDetector = new ScaleGestureDetector(Context, new ScaleListener()); } public override bool OnTouchEvent (MotionEvent e) { mScaleDetector.OnTouchEvent(e); return true; } protected override void OnDraw(Android.Graphics.Canvas canvas) { base.OnDraw(canvas); canvas.Save(); canvas.Scale(mScaleFactor, mScaleFactor); canvas.Restore(); } } private class ScaleListener : ScaleGestureDetector.SimpleOnScaleGestureListener { public override bool OnScale(ScaleGestureDetector detector) { mScaleFactor *= detector.ScaleFactor; // Don't let the object get too small or too large. mScaleFactor = Math.Max(0.1f, Math.Min(mScaleFactor, 5.0f)); return true; } } } 

}

И в файле макета

 <?xml version="1.0" encoding="utf-8"?> <LA_Application.ZoomView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/my_view" /> 

Код активности

 protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); SetContentView(Resource.Layout.zoomview); /*some code*/ } 

Я бы посоветовал проверить этот учебник Java Android, чтобы получить представление о том, что вам нужно настроить:

http://developer.android.com/training/custom-views/index.html

Возможно, вам понадобится создать XML-файл атрибутов для вашего пользовательского представления.

Другим подходом, который вы можете рассмотреть, является использование фрагмента вместо представления:

http://docs.xamarin.com/guides/android/platform_features/fragments/fragments_walkthrough

В файле макета вам нужно написать путь к вашему классу маленькими буквами. Для меня Core.Droid.MyImageView должен был быть написан как core.droid.MyImageView .

Я не уверен, что только первая буква или все буквы должны быть написаны небольшими, но вы можете попробовать либо lA_Application.ZoomView либо la_application.ZoomView . Один из них, скорее всего, будет работать 🙂

Вот скелет о том, как создать пользовательский вид в xamarin.android

http://xandroid4net.blogspot.com/2014/09/custom-view.html

Затем ответьте Эммануэлю Тозери и добавьте его в скелет

Зум