毕加索不会在MainActivity中加载视图

时间:2019-03-24 18:20:01

标签: android kotlin picasso

我正在做一个基本的Android Studio项目,用于使用带有Kotlin的Picasso将URL加载到ImageView中。我遵循了毕加索官方网页上的所有步骤,但是当我运行我的应用程序时,模拟器显示了一个空视图。

在我的Gradle中,我添加了毕加索的实现:

implementation 'com.squareup.picasso:picasso:2.71828'

清单标签中的Internet权限也是如此:

<uses-permission android:name="android.permission.INTERNET"/>

MainActivity中,毕加索的基本用法是

Picasso.get().load("http://paproject.online/hp.jpg").into(imageTest)

imageTestImageviewlayout_height = 200dplayout_weight = 200dp的ID。

4 个答案:

答案 0 :(得分:1)

也许您的照片尺寸太大,因此请在ImageView的{​​{1}}标签中将XMLlayout_width编辑为Const Size,例如100dp。

,如果U可以使用Glide更改毕加索。也许可以帮助您

答案 1 :(得分:0)

您的图像比ImageView大(1024x768),但是当然这不应该成为空白的原因。请尝试以下操作,其中还包括针对错误情况的本地图像资源Nopic。似乎您具有正确的包含

// Lazy load the image with Picasso
get()
        .load(yourURL)
        .placeholder(R.drawable.nopic)
        .error(R.drawable.nopic)
        .into(img);

答案 2 :(得分:0)

您可以在将图像包含到imageView中之前调整其大小

private DependencyPropertyDescriptor _dpd;
private DateTime _closeTime;

private void TestButton_Click(object sender, RoutedEventArgs e)
{
    if (sender is Button button)
    {
        button.ContextMenu.Placement = PlacementMode.Bottom;
        button.ContextMenu.PlacementTarget = button;
        button.ContextMenu.IsOpen = !button.ContextMenu.IsOpen && DateTime.UtcNow.Subtract(_closeTime).TotalMilliseconds > 250;

        if (_dpd == null)
        {
            _dpd = DependencyPropertyDescriptor.FromProperty(ContextMenu.IsOpenProperty, typeof(ContextMenu));
            _dpd.AddValueChanged(button.ContextMenu, OnContextMenuClosed);
        }
    }
}

private void OnContextMenuClosed(object sender, EventArgs e) => _closeTime = DateTime.UtcNow;

或者您可以使用任何裁剪技术,例如.CenterCrop()。 您可以阅读有关此https://futurestud.io/tutorials/picasso-image-resizing-scaling-and-fit

的更多信息

答案 3 :(得分:0)

好的,问题已经解决。似乎在Android 9.0中加载图像时出现问题。因此解决方案在以下链接中:Picasso image loading issue with Android 9.0 Pie。 感谢大家的答复。