Как включить Java баночка в C# проект Xamarin (пример Пикассо), проблема с полем ImageView android: sr c - PullRequest
2 голосов
/ 02 марта 2020

Я делаю переход с java на c#, и мне нужна помощь. в Visual Studio 2019 Pro, Android 9.0 (P ie), я делаю этот пример:

https://docs.microsoft.com/en-us/xamarin/android/platform/binding-java-library/binding-a-jar

Цель конвертировать позже мои java libs to c# для моего большого проекта.

Я следую инструкциям к письму, и когда я прихожу к той части, где мне нужно создать ImageView, возникает проблема. Как только я создаю ImageView, он имеет поле android: sr c, что-то вроде этого (автоматически генерируется):

android:src="@drawable/icon"

Проблема здесь, когда я удаляю это поле в VS Дизайнер, ImageView исчезает, и не имеет значения, есть ли у меня код c# или нет, даже когда я устанавливаю sre c в: ""

Сильфон буквально весь код в MainActivity :

using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Runtime;
using Android.Widget;

using Com.Squareup.Picasso;

namespace App3
{
    [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
    public class MainActivity : AppCompatActivity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.activity_main);

            /***********************************************************************/
            /**Picasso Code**/

            ImageView imageView = FindViewById<ImageView>(Resource.Id.imageView1);
            // Use the Picasso jar library to load and display this image:
            Picasso.With(this)
                .Load("http://i.imgur.com/DvpvklR.jpg")
                .Into(imageView);

            /**End Ff Picasso Code**/
            /***********************************************************************/

        }
        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);
        }
    }
}

XML Код:

<?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"
    android:minWidth="25px"
    android:minHeight="25px">
    <ImageView
        android:src="@drawable/icon"             <!-- this line -->
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/imageView1" />
</LinearLayout>

Приложение ничего не делает, и в эмуляторе ImageView пусто. И здесь нет ошибок или чего-то еще.

Если вам нужно что-то еще, пожалуйста, дайте мне знать. Я надеюсь, что вы можете помочь мне, если нет, спасибо за ваше время.

Редактировать 1: Кажется, проблема заключается в коде C#. Если я добавлю поле android: sr c, оно по-прежнему не будет отображаться в эмуляторе, но при удалении кода (кода Пикассо) появится изображение (рисование / значок). Все еще нет ошибки !!

1 Ответ

0 голосов
/ 02 марта 2020

попробуйте

<ImageView
        android:src="@drawable/icon"             <!-- this line -->
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minWidth="50px"
        android:minHeight="50px"
        android:id="@+id/imageView1" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...