簡體   English   中英

如何將 Java jar 包含到 C# Xamarin 項目(Picasso 示例)中,ImageView android:src 字段存在問題

[英]How to include Java jar to C# Xamarin project (Picasso example), problem with ImageView android:src field

我正在做一個 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 libs 轉換為 c# 以用於我的大項目。

我按照信中的說明進行操作,當我來到需要創建ImageView的部分時,就出現了問題。 創建 ImageView 后,它有一個 android:src 字段,如下所示(自動生成):

android:src="@drawable/icon"

這里的問題是,當我在 VS 設計器中刪除該字段時,ImageView 消失了,即使我將 srec 設置為:""

Bellow 是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" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM