2014-11-17 2 views
2
  • Xamarin.Forms
  • VS2013의 IDE 나는 다른 주제이 거기 알고 있지만, 내 문제에 대답하지 않는

.Xamarin.Forms (자 마린의 도움으로 해결) ContentPage.BackgroundImage

Android의 경우 배경 이미지가 정상적으로 작동합니다.

BackgroundImage = Device.OnPlatform("Resources/[email protected]", 
            "Drawable/HTMobile.png", 
            "Images/HTMobile.png"); 

iOS의 경우 작동하지 않습니다.

  • 이미지의 일반 및 망막 버전 (해당 화면의 정확한 크기는 )을 사용해 보았습니다.
  • 나는 위의 시나리오 중 하나에, 나는 투명 또는 단색 컬러 이미지 배경 아이폰 OS, 배경 이미지에서

이미지를 시도했습니다

  • 프로젝트의 루트 폴더에 배치 해봤 , 모든 CustomContentPage 컨트롤의 흰색 화면을 보여줍니다. 배경 코드 행을 주석 처리하고 내 페이지가 정상적으로 표시되며 모든 컨트롤과 탐색 링크가 있습니다.

    다음 코드 ('Resouces'폴더 없음)를 사용하면 페이지가 정상적으로 표시되지만 이미지는 없습니다. .

    BackgroundImage = Device.OnPlatform("[email protected]", 
                "Drawable/HTMobile.png", 
                "Images/HTMobile.png"); 
    

    어떻게 iOS에서 배경 이미지를 설정하나요? 이 답변을 얻으려면 다음을 알아야합니다.

    • 이미지를 프로젝트에 넣으면 올바르게 집어 올릴 수 있습니까?
    • 어떤 이미지 유형을 사용하십니까? 크기? 해결? 색 농도? 투명도?
    • iOS가 4s, 5s 또는 6/6 + iPhone 인 경우 사용할 이미지를 '알 수있게'하시겠습니까?

    편집

    ContentPage.BackgroundImage 타입 FileImageSource입니다 - 자동으로로드됩니다 정확한 해상도를 의미한다; 그러므로 전화는 ...

    BackgroundImage = Device.OnPlatform("HTbg.png", 
                "Drawable/HTMobile.png", 
                "Images/HTMobile.png"); 
    

    그러나 이것은 여전히 ​​작동하지 않습니다. 4 인치 이미지 버전을 추가하여 도움이되는지 확인해 보겠습니다.

    EDIT 2 : 여기에 Xamarin의 사람들이 도움을주었습니다. 이미지를 배경에 맞게 ImageSet으로 옮겼습니다. 이렇게하면 이미지를 더 쉽게 관리 할 수 ​​있습니다. 그때 나는 단순히 전화 :

    BackgroundImage = Device.OnPlatform("HTMobile", 
                "HTMobile.png", 
                "HTMobile.png"); 
    

    그러나, 이미지가 여전히 표시되지 않았습니다! 내보기에는 견고한 배경을 가진 TableView가 포함되어 있습니다.

    나는 그것을 포함하지 않는 것에 대해 사과하지만 그 당시로서는 적절하지 않다고 생각했습니다.누가 알았 겠어!

    그래서이 문제를 해결하는 방법은있는 TableView의 생성자에서 배경 색상을 설정하는 것입니다

    의 backgroundColor = Color.Transparent

    모든 좋은 : 이미지 표시! 이미지가 장치 크기가 아닌 경우 이미지를 덮어 이미지를 덮습니다. 따라서 배경 위에 타일을 붙이는 작은 이미지로 멋진 효과를 낼 수 있습니다.

  • +0

    [Working with Images] (http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/images/)를 읽으셨습니까? – Jason

    +0

    예. 기쁨이 없습니다. 그것은 높은 단계로 넘어가지만, 물건을 자세히 묘사하지 않습니다. 제가 무언가를 훑어 보지 않으면 ... –

    +0

    경로, 이미지 이름 만 지정할 필요는 없습니다. XF는 플랫폼 별 올바른 경로를 가정합니다. BuildAction BundleResource를 사용하는 리소스에서 iOS의 경우 BundleResource – Jason

    답변

    3

    IOS에서의이 문제는 IOS 자산 카탈로그에 필요한 이미지를 추가함으로써 해결됩니다. Xamarin.Forms는 BackgroundImage 속성이 IOS 이전 버전의 리소스 폴더에있을 때 이미지를로드하지 않습니다. 이로 인해 시간이 절약 될 수 있습니다.

    +1

    나를 위해 문제가 해결되었습니다. Xamarin이 BackgroundImage를 훨씬 다르게 문서화했다면 더 좋을 것입니다. – Kyle

    관련 문제