2016-02-25 3 views
0

Я вернулся с рассказами о разочаровывающих приключениях. На этот раз относительно изображений на стороне андроида титана.Изображения Titanium/Appcelerator не отображаются на Android

Короче говоря, я не могу получить изображения для андроида вообще, будь то фоновое изображение или простое изображение в объекте imageView.

Я предоставлю код, который я стараюсь, и делаю его чрезвычайно маленьким и простым, чтобы его можно было легко воспроизвести для всех наших целей тестирования.

Код:

Попытка # 1 создание программно просматривать и изображения:

index.js

var header = Ti.UI.createImageView({ 
    width: 300, 
    image: '/images/header.png', 
    width: 300 
}); 

var win = Ti.UI.createWindow({ 
    backgroundColor: 'white', 
    height: Ti.UI.FILL, 
    title: 'test', 
    width: Ti.UI.FILL 
}); 

win.add(header); 

win.open(); 

Попытка # 2 равнины джан .xml и .tss стайлинга :

индекс .js:

$.index.open(); 

index.xml:

<Alloy> 
    <Window class="container"> 
     <Label id="label">Hello World!!</Label> 
     <ImageView id='img1'></ImageView> 
    </Window> 
</Alloy> 

index.tss:

".container": { 
    backgroundColor: 'white' 
} 

"#img1": { 
    width: 300, 
    image: '/header.png', 
    width: 300, 
    top: 0, 
    left: 0 
} 

расположения файлов (я скопировал же изображение в 3 разных местах, чтобы попытаться получить что-то) :

  • приложение/активы/header.png
  • приложение/активы/Android/header.png
  • приложение/активы/Android/изображения/header.png

ВНИМАНИЕ, что я пробовал:

  • с использованием "/images/header.png
  • используя" images/header.png "
  • используя" header.png "
  • с помощью "/header.png"
+0

забыл о значимости, результатом выполнения этого всегда является белый фон с ярлыком «привет мир», и это все. –

+0

Вы пробовали другое изображение? – Shawn

+0

@Shawn хороший вопрос. Да, я попытался использовать 3 или 4 разных изображения. все из которых я включил в проект. Я также отправился в Google и выбрал фондовый png-образ, чтобы попытаться посмотреть, был ли это я или что-то в этом роде. Это тоже не сработало. Я также попытался использовать Ti.FileSystem.getFile, чтобы убедиться, что мой путь верен, но я смотрю на все мои изображения в папке сложениями «ресурсы», поэтому я не думаю, что у меня проблемы с обработкой. Я также нарисовал границу вокруг изображения, чтобы увидеть, где он будет в приложении, и я вижу границу, но не изображение. –

ответ

3

Прежде всего, в свойстве ImageView вы упомянули ширину дважды, поэтому вы можете удалить одно объявление и поместить высоту изображения, например 300 (вы можете поместить Ti.UI.SIZE для поддержания соотношения сторон)

Во-вторых, поместите изображения внутри app/asset/android/images/res-<density> соответственно. Замените <density>, например, mdpi/hdpi/xhdpi. (вы можете поместить это в res-hdpi для тестирования)

Сделайте чистую сборку, а затем проверьте, не отражается ли она.

+0

Также на скриншоте я вижу View и Label, определенные в TSS. Вы можете удалить их. – Soumya

+0

получил эту ошибку, когда я добавил к Рез-долгосрочной поземельного ИПЧР: Не удалось упаковать приложение: [ERROR]: [ERROR]: Libpng ошибка: CgBI: необработанное критический кусок [ERROR]: ОШИБКА: обработка Сбой PNG image /Users/michael.kellogg/Documents/Appcelerator_Studio_Workspace/AndroidStyleTester/build/android/res/drawable-long-land-hdpi/header_271184a1ea.png ..... поэтому я экспортировал изображение как .png (некоторые люди сказал повторно сохранить в массе ms, но im на mac). Приложение успешно построено на этот раз, но с теми же результатами, что и на этом изображении: http://s12.postimg.org/ssui2h2cd/image_error.png –

+2

Измените TSS на это ==> /images/header_new.png. Удалите часть res-long-land-hdpi. На данный момент я предлагаю вам сохранить header_new.png внутри папки res-hdpi, только для резервного сценария. Папки нет, посмотрев на скриншот, поэтому создайте одно имя res-hdpi на том же уровне, где присутствует res-long-land-hdpi. – Soumya

1

Очень просто!

сплава Пример:

Поместите изображение в app/assets/images, например app/assets/images/header.png.

Теперь ваш код

<ImageView id='img1' image='/images/header.png' ></ImageView> 

Или в .tss файле

"#img1": { 
    width: 300, 
    image: '/images/header.png', 
    width: 300, 
    top: 0, 
    left: 0 
} 

End!

+0

Я добавил папку «images» в app/assets /, но это не сработало. будь моим свидетелем сэр. вы можете увидеть расположение файла в левом нижнем углу и мои результаты на этом изображении: http://s21.postimg.org/j1tbfl3o7/image_error.png –

+0

это похоже на такую ​​простую вещь, которая не работает вообще для меня , Является ли моя конфигурация Android как все неправильно или что-то в этом роде? Неужели я случайно загрузил китайскую нокаутирующую машину? lol –

1

поместить изображение: app/assets/images/header.png

обращаться к нему с

<ImageView id='img1' image="/images/header.png"></ImageView> 

важно: попытаться очистить свой проект первым для каждого изменения, сделанные в папке активов, прежде чем запустить приложение!

+0

Проверено это, чтобы работать с Ti 5.2.0 и Android 6 –

+0

@ Fokke-Appcelerator Я видел эти ответы во всех stackoverflow, и это сильно разочаровало меня. Я не уверен, есть ли какая-то существенная разница в моей конфигурации по сравнению с другими или что-то в этом роде, но это не работает и НИКОГДА не работает для меня. Я провел целый день, пытаясь разрешить это. Единственная вещь, которая работала для меня, заключалась в создании «res-hdpi» папки «assets-> android-> images-> res-hdpi. Когда я помещал свои изображения в это, тогда это сработало. Это тоже не похоже документально оформленный в титане где угодно, всегда такой же простой ответ, который не помог. –

+0

@MikeKellogg Не могли бы вы создать билет JIRA с прикрепленным проектом Titanium, версию Titanium SDK, инструменты Android Build Tools и API, с которыми вы строите, и журнал вашего построить процесс? Если вы снимете ссылку здесь, я бы с удовольствием погрузился и решил эту неприятную странность для вас. –

Смежные вопросы