Xamarin Android ImageView не отображается - PullRequest
0 голосов
/ 19 марта 2020

Как и в заголовке, изображение не отображается ни в дизайнере, ни во время выполнения. Изображение является случайным размером 82x53 пикселей, 629 В, созданным в программе Paint и сохраненным в формате png. Решение по очистке и восстановлению не устраняет проблему.

activity_main. xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/title"
        android:textSize="50sp"
        android:gravity="center"
        />
    <ImageView
        android:id="@+id/test_image"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/test"
        android:layout_gravity="center"
        />
</LinearLayout>

MainActivity.cs

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

namespace Lab01
{
    [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);
            SetContentView(Resource.Layout.activity_main);

            var imageView = FindViewById<ImageView>(Resource.Id.test_image);
            imageView.SetImageResource(Resource.Drawable.test);
        }
        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);
        }
    }
}

Экран обозревателя решений

Запущенное приложение

test.png Вкладка свойств изображения

Ответы [ 2 ]

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

Согласно атрибуту Android LinearLayout xml android: ориентация :

Должен ли макет быть столбцом или строкой? Используйте «горизонтальный» для строки, «вертикальный» для столбца. По умолчанию используется значение по горизонтали.

Если вы не укажете атрибут android: LinearLayout для ориентации, по умолчанию он установлен на «горизонтальный», а ширина TextView установлена ​​на «match_parent», ваш ImageView будет быть вне экрана

Чтобы ваше ImageView показывалось в TextView, вы можете добавить этот атрибут в LinearLayout:

android:orientation="vertical"

или изменить свой TextView с помощью:

android:layout_width="wrap_content"
0 голосов
/ 19 марта 2020

Установите цвет фона, чтобы проверить, отображается ли изображение в макете. Также нет необходимости снова устанавливать ImageResource в методе OnCreate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...