Анимация (перевод) элементов горизонтального списка

У меня есть горизонтальный список с несколькими текстовыми представлениями. Я хочу переводить (анимировать) эти текстовые представления (элементы) только справа налево по кругу, нажимая кнопку. Не переводить горизонтальный макет списка. Это возможно?

Редактировать:

Для этого горизонтального списка я использовал адаптер для загрузки значений в этот список.

Как это:

private static String[] dataObjects = new String[]{ "Text #1",
    "Text #2",
    "Text #3","Text #4","Text #5","Text #6","Text #7","Text #8","Text #9","Text #10" };

private BaseAdapter mAdapter = new BaseAdapter() {

    @Override
    public int getCount() {
        return dataObjects.length;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @SuppressLint({ "ViewHolder", "InflateParams" })
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.viewitem, null);
        TextView title = (TextView) retval.findViewById(R.id.title);
        //Button button = (Button) retval.findViewById(R.id.clickbutton);
        //button.setOnClickListener(mOnButtonClicked);
        title.setText(dataObjects[position]);

        return retval;
    }       

};

И установите этот адаптер в горизонтальное представление списка как:

listView=(HorizontalListView)findViewById(R.id.simple_list);
    listView.setAdapter(mAdapter);

Заранее спасибо...


person Bosco    schedule 03.12.2014    source источник
comment
Да, это возможно. что ты имеешь в виду под circular way?   -  person Mohammed Ali    schedule 03.12.2014
comment
@Ali, это означает перевод этих текстовых представлений из начальной точки этого текстового представления в конец родителя, то есть горизонтального списка, а затем снова перевод из конечной точки родителя в себя. Так же, как процесс выделения тега в HTML   -  person Bosco    schedule 04.12.2014


Ответы (1)


Сделайте translate.xml в каталоге res -> anim. Код:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
 android:interpolator="@android:anim/accelerate_decelerate_interpolator"
 android:duration="500"
 android:fillAfter="true"
 android:fromXDelta="100%"
 android:toXDelta="0%" >
  />

Измените проценты в android:fromXDelta="100%" android:toXDelta="0%" в соответствии с вашими потребностями. Теперь используйте:

animationT = AnimationUtils.loadAnimation(myContext,
        R.anim.translate);

//put inside your clickListener
button.setOnClickListener (new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    textView1.startAnimation(animationT);
    textView2.startAnimation(animationT);
    textView3.startAnimation(animationT);
});
person Mohammed Ali    schedule 03.12.2014
comment
Я не хочу переводить одно текстовое представление за раз. Как только я нажал кнопку, я перевел все текстовые представления только внутри горизонтального макета списка. Как принцип работы тега выделения в HTML. Вот и все - person Bosco; 04.12.2014
comment
Так в чем проблема, вы можете применить одну и ту же анимацию ко всем textViews. - person Mohammed Ali; 04.12.2014
comment
Просто посмотрите мой обновленный вопрос... Я думаю, что если в списке сотни или тысячи значений, то ваш код неэффективен или не соответствует этим критериям. - person Bosco; 04.12.2014
comment
поместите textView.startanimation внутрь getview - person Mohammed Ali; 04.12.2014
comment
на основе вашего ответа, он анимируется каждый раз, когда это представление будет добавлено. Я хочу анимировать, только когда я нажимаю кнопку. Не забывайте мои основные ограничения.... - person Bosco; 04.12.2014
comment
Давайте продолжим это обсуждение в чате. - person Bosco; 04.12.2014