2014-09-15 3 views
4

Xamarin.Forms를 사용하여 크로스 pltform 앱을 개발 중입니다. 이미지로 버튼을 만들고 싶지만 이미지의 경로를 지정하는 방법을 모릅니다. 나는이 주석을 사용하는 경우 그것은 작동 : 내 이미지가 일부 폴더 안에있을 때이미지가있는 버튼 Xamarin.Forms

<Button Text="Naviga tra i Piani del Museo" Image="foo.png"/> 

하지만이 (폴더 1/Folder2 폴더) 다음과 같은 코드가 작동하지 않습니다

<Button Text="Naviga tra i Piani del Museo" Image="folder1/folder2/foo.png"/> 

그래서 내가 제대로을 지정할 수있는 방법 내 이미지의 경로?

답변

4

폴더에 이미지를 중첩 할 수 없습니다. iOS와 Android는 리소스가 리소스가 될 것으로 예상하고 WP는 애플리케이션의 루트 폴더에 있어야한다고 WP는 예상합니다.

Xamarin Forms 문서의 섹션은 working with images입니다.

+0

100 개의 이미지가있는 경우 모두 같은 폴더에 넣으시겠습니까? – nix86

+0

불행히도 XF의 현재 상태에 대한 대답이라고 생각합니다. 앞으로는 더 유연 해지기를 희망합니다. – Jason

-1

OnPlatform 태그의 버튼에 대한 Image 속성을 지정하여 각 플랫폼에 다른 경로를 지정해야합니다. 이것은 Box View의 예입니다. Button Image 속성에도 동일하게 적용 할 수 있습니다.

<BoxView HorizontalOptions="Center"> 
     <BoxView.Color> 
     <OnPlatform x:TypeArguments="Color" 
      iOS="Green" 
      Android="#738182" 
      WinPhone="Accent" /> 
     </BoxView.Color> 
     <BoxView.WidthRequest> 
     <OnPlatform x:TypeArguments="x:Double" 
      iOS="30" 
      Android="40" 
      WinPhone="50" /> 
     </BoxView.WidthRequest> 
</BoxView> 
0

PCL을 사용하여 이미지를 공통으로 유지하는 것은 어려운 작업입니다. 별도로 처리하십시오.

안드로이드 프로젝트의 경우 리소스> 드로어 블에 이미지를 복사해야한다는 점에 유의하십시오.

0

Xamarin.Forms 프로젝트에 대한 폴더를 사용하는 경우 이것이 저에게 효과적입니다.

리소스 (이 경우 이미지 파일)를 Xamarin.Form 프로젝트의 폴더 (이 예제에서는 폴더는 "자산"이라고 함)에 넣고 Build Action "Content"를 설정해야합니다.

두 번째로 Android에서 작동하는 리소스의 경우 Android 프로젝트 내부의 리소스> 드로어 블 폴더 (여기에는 폴더를 사용할 수 없음), Build Action "AndroidResource"를 설정해야합니다. iOS 용 당신은 "/"와 WinPhone/UWP은 "\"를 사용하여 경로를 만들 필요가

<ContentPage.Resources> 
    <ResourceDictionary> 
     <OnPlatform x:Key="StartButtonImage" 
        x:TypeArguments="FileImageSource" 
        Android="button_image.png" 
        WinPhone="Assets\button_image.png" 
        iOS="Assets/button_image.png"/> 
    </ResourceDictionary> 
</ContentPage.Resources> 


<ContentPage.Content> 
    <Grid> 
     <Button Image="{StaticResource StartButtonImage}" BackgroundColor="Transparent"/> 
    </Grid> 
</ContentPage.Content> 

에주의있다.

관련 문제