2016-12-28 3 views
0

сталкиваюсь вопрос применить vectordrawable на моем ImageView и EditTextXamarin - работа с VectorDrawable в ImageView и EditText

здесь мои попытки решить проблему

Первый Я использую Xamarin.Android.Support.Vector.Drawable версии 23,4 .0

Второй добавить AppCompatDelegate.CompatVectorFromResourcesEnabled = true; в OnCreate моей заявке

public class MyApplication : Application 
    { 


     public MyApplication(IntPtr handle, JniHandleOwnership ownerShip) : base(handle, ownerShip) 
     { 
      Log.Debug("App", "I am in oncreate application"); 
     } 
     public override void OnCreate() 
     { 
      base.OnCreate(); 
      AppCompatDelegate.CompatVectorFromResourcesEnabled = true; 

     } 

} 

* Третий * с помощью AppCompatActivity, чтобы убедиться, что моя деятельность используется AppCompatImageView вместо обычного ImageView и попытаться установить рисуем вручную, но вернуться с нулем (я не знаю, почему это произошло)

[Activity(Label = "Activity1", Theme = "@style/AppTheme")] 
    public class Activity1 : AppCompatActivity 
    { 
     protected override void OnCreate(Bundle savedInstanceState) 
     { 
      base.OnCreate(savedInstanceState); 

      SetContentView(Resource.Layout.test); 

      ImageView testImage = FindViewById<ImageView>(Resource.Id.imageViewTest); 

      Drawable drawable = VectorDrawableCompat.Create(Resources, Resource.Drawable.ic_arrow_back_white_24dp, null); 
      testImage.SetImageDrawable(drawable); 

     } 
    } 

Четвертый в моем проекте .csproj Я добавляю инструменты для сборки версии 23.0.3 <AndroidSdkBuildToolsVersion>23.0.3</AndroidSdkBuildToolsVersion>

здесь мое полное содержимое файла

?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <AndroidSdkBuildToolsVersion>23.0.3</AndroidSdkBuildToolsVersion> 
    <AndroidDesignerPreferredDevice>Nexus 4</AndroidDesignerPreferredDevice> 
    <SelectedDevice>Nexus_5_API_21_x86</SelectedDevice> 
    <AndroidDesignerPreferredTheme>Theme.DeviceDefault</AndroidDesignerPreferredTheme> 
    </PropertyGroup> 
</Project> 

Пятый я ссылаться мой векторное изображение app:srcCompat

, но он по-прежнему не работает какой-либо один может помочь мне решить эту проблему

ответ

0

исправить первую половину моей проблемы Просто обновите до

Xamarin.Android.Support.Vector.Drawable Version 23.4.0.1 

убедитесь, что вы ссылки на ваши векторные изображения, таким образом app:srcCompat

связанные с EditText изображения я думаю, вы не можете установить его из XML вы должны использовать его с помощью кода здесь метод

SetCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom); 

в моем случае я б leftdrawable так что мой метод похож

SetCompoundDrawablesWithIntrinsicBounds(Resource.Drawable.MyDrawable, 0, 0, 0); 

надеюсь, что это поможет любому одно лицо же вопрос

0

Update: Забудьте о Старое решение. Просто обновите последнюю версию Verizon of Xamarin (Xamarin.Android 7.2.0.7) и последнюю версию поддержки libs (25.3.1).


Старый Решение:

Понизить к Xamarin 4.2.0.680, использовать только поддержка ЛИЭС версии 23.3.0 (Последние стабильные 24.2.1 аварии на Android 4.4.4, но работает на Android 6)

обеспечить Также это:

Поместите этот статический конструктор в своей деятельности:

static Activity1() 
{ 
    AppCompatDelegate.CompatVectorFromResourcesEnabled = true; 
} 

Или добавьте AppCompatDelegate.CompatVectorFromResourcesEnabled = true; к вашему Application class' OnCreate метода.

<AndroidSdkBuildToolsVersion> в вашем проекте больше не должно быть необходимым.

Использование app:srcCompat, как вы уже это сделали.

Посмотрите на зависимости каждой поддержки Lib в Nuget

У меня есть:

  • Xamarin.Android.Support.Animated.Vector.Drawable.dll 23.3.0
  • Xamarin. Android.Support.Design.dll 23.3.0
  • Xamarin.Android.Support.v14.Preference.dll 23.3.0
  • Xamarin.Android.Support.v4.dll 23.3.0
  • Xamarin.Android.Support.v7.AppCompat.dll 23.3.0
  • Xamarin.Android.Support.v7.Preference.dll 23.3.0
  • Xamarin.Android.Support.v7.RecyclerView.dll 23.3.0
  • Xamarin.Android.Support.Vector.Drawable.dll 23.3.0

Также делают Shure вы ссылаетесь Java.Interop.dll

Попробуйте другой вектор рисуем, например, из Material Design Icons (Нажмите на иконку, выбрать Icon Pack возраст, .XML Векторный Drawable).

Смежные вопросы