我正在做一个基本的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)
imageTest
是Imageview
和layout_height = 200dp
和layout_weight = 200dp
的ID。
答案 0 :(得分:1)
也许您的照片尺寸太大,因此请在ImageView
的{{1}}标签中将XML
和layout_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。 感谢大家的答复。