java - 如何将 Java jar 包含到 C# Xamarin 项目(毕加索示例),ImageView android:src 字段的问题
问题描述
我正在做 java 到 c# 的转换,需要帮助。在 Visual Studio 2019 Pro、Android 9.0 (Pie) 中,我正在做这个例子:
https://docs.microsoft.com/en-us/xamarin/android/platform/binding-java-library/binding-a-jar
目标是稍后为我的大项目将我的 java 库转换为 c#。
我按照信中的说明进行操作,当我来到需要创建 ImageView 的部分时,就出现了问题。一旦我创建了 ImageView,它就有一个 android:src 字段,像这样(自动生成):
android:src="@drawable/icon"
这里的问题是,当我在 VS 设计器中删除该字段时,ImageView 消失了,我是否有 c# 代码并不重要,即使我将 srec 设置为:""
贝娄实际上是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:src 字段,它仍然不会显示在模拟器上,但是当我删除代码(毕加索代码)时,图像(可绘制/图标)显示。还是没有错误!!
解决方案
尝试这个
<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" />
推荐阅读
- go - 如何在switch中匹配字符串
- python - django modelformset factory 'tuple' 对象没有属性 'author
- git - 从 Concourse 克隆 Bitbucket 上的 git 存储库的问题
- powerbi - 如何通过两个独立的切片器并排附加当前和以前的会话
- php - 如何在php中转换喜欢计数
- php - 为什么 sort_by_name 参数在 ActiveCollab API 上不起作用?
- autohotkey - AlwaysOnTop 不使用 AutoHotKey 中记录的语法
- ios - UIView.transition 延迟
- vuejs2 - 如何正确地将 getter 添加到 Vuex 模块?
- elasticsearch - 汇总结果显示的项目少于 doc_count?