2015-06-15 12 views
13

Tôi gặp khó khăn khi đưa hình ảnh lên trang nội dung trong bố cục ngăn xếp. Tôi đã xem qua Tài liệu về API Xamarin và tìm thấy Xamarin.Forms.Image.Source Property, nhưng không có mã mẫu nào để xem nó được viết như thế nào. Tôi cũng đã kiểm tra xem nó được viết như thế nào trong C# và dường như khớp với mã của tôi về đường dẫn tên tệp, nhưng trong Xamarin, nó có thể hơi khác vì đây là lần đầu tiên làm điều này. Mã tôi hiện đang thử nghiệm thông qua trình giả lập Android (Google Nexus 5) trong Visual Studio 2013 chạy tốt, ngoại trừ Hình ảnh không hiển thị.Cách sử dụng đúng thuộc tính Nguồn hình ảnh bằng Xamarin.Forms?

Hình ảnh Nguồn:

new Image 
{ 
    VerticalOptions = LayoutOptions.Center, 
    HorizontalOptions = LayoutOptions.Center, 
    Source = "/Assets/xamarin_logo.png", 
}, 

Full Code:

public NFCPage() 
    { 
     StackLayout stackLayout = new StackLayout // instantiate a StackLayout object to layout its children 
     { 
      Spacing = 5, // amount of spae between each child element 
      //HorizontalOptions = LayoutOptions.Center, 
      VerticalOptions = LayoutOptions.FillAndExpand, // defines how the elements should be laid out; fill the entire width of the content to the screen 
      BackgroundColor = Color.Blue, 

      Children = // gets a list of child elements 
      { 
       new Label 
       { 
        TextColor = Color.White, 
        BackgroundColor = Color.Red, 
        XAlign = TextAlignment.Center, // set text alignment horizontally 
        Text = "Google", 
       }, 
       new Label 
       { 
        Text = "Place your device directly at the symbol.", 
        XAlign = TextAlignment.Center, 
        TextColor = Color.White, 
       }, 
       new Image 
       { 
        VerticalOptions = LayoutOptions.Center, 
        HorizontalOptions = LayoutOptions.Center, 
        Source = "/Assets/xamarin_logo.png", 
       }, 
       new Button 
       { 
        Text = "QR Code", 
        TextColor = Color.White, 
       }, 
       new Button 
       { 
        Text = "?", 
        TextColor = Color.White, 
       }, 
      } 
     }; 
     Content = stackLayout; // apply stackLayout to Content 
    } 
+1

Có bạn đọc doc này - http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/images /? Nói chung trên Android, bạn thêm hình ảnh dưới dạng tài nguyên có thể kéo và sau đó chỉ định tên hình ảnh và Biểu mẫu sẽ tìm thấy hình ảnh phù hợp trong tài nguyên. – Jason

+0

Cảm ơn thông tin. Tôi có một câu hỏi để hỏi, nơi nào tôi xác định vị trí hình ảnh lên trang với mã này 'var NfcImage = new Image {Aspect = Aspect.AspectFit}; NfcImage.Source = ImageSource.FromFile ("xamarin_logo.png"); '? Không hoạt động nếu tôi đặt nó trong 'new Image {}' constructor – TheAmazingKnight

+0

Tôi đã tìm ra nó, tôi theo sau cái có tên là "Local Images" và điều chỉnh tên đường dẫn file thành 'Source =" xamarin_logo.png "' và nó đã làm việc. Cảm ơn rất nhiều lần nữa cho liên kết. Nó thực sự hữu ích. – TheAmazingKnight

Trả lời

19

Bạn không nên tham khảo các con đường bởi vì thuộc tính nguồn là cross-platform và vì mỗi nền tảng có khác nhau cho các tài sản như hình ảnh, bạn chỉ cần chỉ định tên tệp và phần mở rộng. Lớp Image biết nơi cần tìm tập tin.

Tệp hình ảnh có thể được thêm vào từng dự án ứng dụng và được tham chiếu từ mã chia sẻ Xamarin.Forms. Để sử dụng một hình ảnh duy nhất trên tất cả các ứng dụng, tên tệp giống nhau phải được sử dụng trên mọi nền tảng và tên tệp phải là tên tài nguyên Android hợp lệ (có nghĩa là không có dấu cách và ký tự đặc biệt). Đặt hình ảnh trong thư mục Tài nguyên/có thể vẽ bằng Build Action: AndroidResource. Có thể cung cấp các phiên bản hình ảnh cao và thấp DPI (trong các thư mục con Tài nguyên được đặt tên thích hợp như drawable-ldpi, drawable-hdpi và drawable-xhdpi).

enter image description here

var beachImage = new Image { Aspect = Aspect.AspectFit }; 
beachImage.Source = ImageSource.FromFile("waterfront.jpg"); 

Nguồn:https://developer.xamarin.com/guides/xamarin-forms/working-with/images/#Local_Images

+1

Trong dự án UWP giữ tất cả các hình ảnh trong thư mục gốc không phải là giải pháp tốt nhất, bạn có giải pháp nào khác để giữ hình ảnh trong thư mục con không. Vui lòng tham khảo câu hỏi ở đây. http://stackoverflow.com/questions/37939758/xamarin-cross-platform-uwp-images-are-missing – Ashaar

2

Thêm hình ảnh trong Solution Explorer bằng cách nhấn vào Tài/thư mục drawable và chọn New/hiện item.Please không sao chép hình ảnh để Resources/drawable thư mục. Tôi hy vọng nó sẽ giúp.

4

Nếu bạn sẵn sàng để thêm hình ảnh sử dụng mã, thử này

Downloaded tự động và hiển thị các hình ảnh

 var webImage = new Image { Aspect = Aspect.AspectFit }; 
     webImage.Source = ImageSource.FromUri(new Uri("https://xamarin.com/content/images/pages/forms/example-app.png")); 
Các vấn đề liên quan