Текстовая галерея на Android?

У меня есть галерея с TextView для получения контроллера сегмента на изображении ниже. Я могу добиться этого с помощью примера галереи ApiDemo, но я отстаю от внешнего вида галереи.

Я хочу сделать фон, выбранный / снятый с выбора и выбранный элемент не будет конусом в центре экрана.

Любая идея или статьи наиболее благодарны.

http://www.freeimagehosting.net/uploads/cce47da969.png

Я пытался использовать 2 способа. которые:

  1. Gallery View
  2. horizontal ScrollView

Получение вывода показано на изображении ниже:

http://www.freeimagehosting.net/uploads/b4c1be5924.png

У меня проблема с обоими, чтобы получить правильный вывод.

В представлении галереи,

  • не может изменить фон выбранного элемента и сделать его скругленным углом.
  • Выбранный элемент автоматически помещается в центр экрана по горизонтали.

В горизонтальном виде,

  • Более сложно, когда число textView велико.
  • Не могу найти способ, похожий на элемент On Click. если у меня есть случай использования переключателя. прежняя проблема повторяется.

person Praveen    schedule 13.07.2010    source источник
comment
@praveen-chandrasekaran: Извините за оффтоп, но что вы добавили в кнопку. Не похоже на адмоб.   -  person Macarse    schedule 13.07.2010
comment
@Macarse: это Google Adsense для мобильных устройств: перейдите по этой ссылке: google.com/mobileads/publisher_home.html   -  person Praveen    schedule 13.07.2010
comment
Привет @Praveen, пожалуйста, поделитесь кодом этой галереи. Я также пробовал это и применяю все, что ниже, но не удалось, помогите, пожалуйста....   -  person AndroidDanger    schedule 04.08.2011


Ответы (1)


поместите это в drawables text_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/round" />
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/round" />
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/round_selected" />
    <item android:drawable="@drawable/round" />
</selector>

круглый.xml

    <?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
     <gradient android:startColor="#FFEF95" android:endColor="#FFEF95"   
            android:angle="270"/> 
<corners android:bottomRightRadius="14dp" android:bottomLeftRadius="14dp" 
     android:topLeftRadius="14dp" android:topRightRadius="14dp"/> 

</shape>

round_selected.xml

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
     <gradient android:startColor="#F6A110" android:centerColor="#FFEF95" android:endColor="#F6A110"   
            android:angle="270"/> 
<corners android:bottomRightRadius="14dp" android:bottomLeftRadius="14dp" 
     android:topLeftRadius="14dp" android:topRightRadius="14dp"/> 

</shape>

А вот и текстовое представление для надувания

 <TextView    
        android:id="@+id/perioxi_select" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Select Area"
         android:gravity="center_vertical|center_horizontal"
         android:background="@drawable/text_selector"
         android:minHeight="60dp"
         style="@style/FirstText"   
         android:layout_weight="1"
        />

Получить стиль тоже. должен быть помещен внутри res/values/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources> 
 <style name="FirstText"> 
        <item name="android:colorForeground">#f0f</item> 
        <item name="android:padding">4sp</item> 
        <item name="android:textSize">15sp</item> 
        <item name="android:textColor">#CC3300</item> 
        <item name="android:gravity">left</item> 
        <item name="android:typeface">monospace</item> 
        <item name="android:textStyle">bold</item> 
        <item name="android:colorBackground">#999</item> 
    </style> 
  </resources>
person weakwire    schedule 14.07.2010
comment
Извините. Бывает ошибочно. Я думал просто проголосовать за тебя. ваш ответ не точен. Но у меня есть идея. Спасибо. пожалуйста, отредактируйте свой ответ. - person Praveen; 14.07.2010
comment
это точно, вы просто установили android:background=@drawable/text_selector в элемент вашей галереи (я полагаю, это TextView).. сохраните round.xml round_selected.xml и text_selector.xml в /res/drawables, и все готово .Углы закруглены и при нажатии на них меняют цвет. - person weakwire; 14.07.2010
comment
нет, ты ошибаешься. ваш text_selector.xml показывает все элементы с закругленным фоном угла. Но мне нужно было бы показать только выбранный элемент только с закругленным углом. Я нашел ответ от android git kernal, какие состояния мы должны определить, находится в этой ссылке: android.git.kernel.org/?p=platform/frameworks/ проверь. - person Praveen; 14.07.2010
comment
ну, вы просто определяете еще один round_* для своих нужд.. не так уж сложно адаптировать его к вашим потребностям, так как я разместил весь код... - person weakwire; 14.07.2010
comment
@weakwire: не могли бы вы сказать мне, когда мы выбираем элемент в GalleryView, он попадает в центр экрана, как его ограничить? Я хочу просто быть там, где я нажимаю на этот элемент. Как? - person Praveen; 23.07.2010
comment
Дикая догадка? переопределите и внедрите GalleryView и создайте собственное представление, но это далеко не так. в моем недавнем проекте я создал строку выбора темы. Если это элемент управления, который вы хотите сделать. TextViews.Textviews могут быть добавлены в среду выполнения Scrollview, поэтому у вас действительно нет ограничений и вы можете динамически изменять их (хорошая ссылка на это - пример gridview SDK) - person weakwire; 24.07.2010