Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 03/11/14, 00:25:44
Array

[xs_avatar]
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Tu operador: Otra
Poner un texto deslizable de derecha a izquierda

Hola, no se si me dejo entender quisiera hacer un textview de una sola linea que tenga entrada y salida osea que aparesca desde un lado y desaparesca en el otro, me gustaria que alguien me diga si esto se puede hacer de forma nativa o necesito de alguna libreria gracias de antemano...
Responder Con Cita


  #2  
Viejo 03/11/14, 08:47:06
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
con xml se puede sin problemas y uasndo AnimationUtils.loadanimation() , yo he echo alguna intro sencilla , los archivos se guardan en res/anim.

Hay muchos ejemplos en la red por ejemplo:

http://appsmolonas.com/efectos-de-an...-interpolador

http://developer.android.com/guide/t...animation.html
Responder Con Cita
  #3  
Viejo 03/11/14, 16:32:08
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Es mucho más fácil que todo eso, basta con indicar que su "ellipsize" es "marquee" y "marqueeRepeatLimit" con "marquee_forever".

Eso si, sólo funciona si es el elemento seleccionado, lo que yo hago es crear una subclase de TextView y sobreescribir el método isFocused para que siempre responda true. Funciona de lujo, incluso con varios elementos con marquesina al mismo tiempo.
Responder Con Cita
Gracias de parte de:
  #4  
Viejo 03/11/14, 16:50:32
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
ostras eso no lo conocia, un ejemplillo estaría bien kriogen
Responder Con Cita
  #5  
Viejo 03/11/14, 22:37:56
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
 Cita: Originalmente Escrito por rafaxplayer Ver Mensaje
ostras eso no lo conocia, un ejemplillo estaría bien kriogen
Realmente no es mucho más de lo que ya he dicho.

Creas una View que herede de TextView y haces que isFocused siempre devuelva true.

Luego usas esa View en lugar del TextView, y le pones como propiedades en el Layout:

android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:focusable="true"
android:focusableInTouchMode="true"

Y ya está, si el texto ocupa más que la línea hará el efecto marquesina y se irá mostrando el texto que falta. Cuando llegue al final volverá a empezar a salir el texto inicial.

El efecto sólo se producirá si realmente el texto ocupa más que la línea, sino se comportará como un TextView normal.
Responder Con Cita
  #6  
Viejo 03/11/14, 23:32:11
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
aja te explico la idea que se me ocurre..
Esto lo puedo hacer con un textview normal? mi idea es que en una lista los items llevan un textview que es una descripcion y esta segun resolucion es muy larga si lo pongo en single lin podria hacer este efecto.
como lo ves ? funcionara en el textview o tengo que crear un view?
Responder Con Cita
  #7  
Viejo 03/11/14, 23:36:01
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
El problema es que sólo funciona si el elemento está seleccionado, por eso lo de hacer la subclase con "isFocused" devolviendo siempre true, así engañas al sistema y piensa que el elemento está seleccionado aunque no lo esté y hace el efecto marquesina.

Desde luego si vas a ponerlo en un ListView y hay varios a la vez que pueden hacer el efecto, tienes que usar la subclase.
Responder Con Cita
  #8  
Viejo 04/11/14, 00:45:09
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
ok ,hare pruevas
Responder Con Cita
  #9  
Viejo 04/11/14, 08:20:44
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Bueno despues de varias pruevas no me funciona , este es mi codigo

XML

Código:
<TextView
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:text="Small Text"
                class="com.rafaxplayer.amsfiles.classes.marqueTextView"
                android:id="@+id/marquetext"
                android:ellipsize="marquee"
                android:marqueeRepeatLimit="marquee_forever"
                android:singleLine="true"
                android:focusable="true"
                android:focusableInTouchMode="false" />
La clase:

Código:
public class marqueTextView extends TextView {

    public marqueTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean isFocused() {
        return true;
    }
}
todo bien pero aunque el texto se mas grande no hace marque , solo lo esconde.
Responder Con Cita
  #10  
Viejo 05/11/14, 06:24:44
Array

[xs_avatar]
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Tu operador: Otra
La tarjeta madre de mi ordenador se quemo por eso no pude responder, muchas gracias por su ayuda a todos lo probare en estos dias en cuanto me compre otro gracias nuevamente todo lo que viene de ustedes es de mucha ayuda.
Responder Con Cita
  #11  
Viejo 05/11/14, 09:11:29
Array

[xs_avatar]
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Tu operador: Otra
Hola muchas gracias lo probe en la PC de mi hermana pero no sale como yo esperaba use la pagina de ejemplo para guiarme, se anima y todo pero no muestra el texto completo alguna idea? dejo mi codigo por si alguien puede ayudarme muchas gracias

Este es el layout de mi actividad
[PHP]<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.JimSoft.Entertainment.edu.Chemi stryTable.MainActivity"
androidrientation="vertical">

<TextView
android:id="@+id/TextoAnimable"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Una enboltura de un chocolate tarda en degradarse entre 2000 a 5000 años, tirala en su correspondiente contenedor para no contaminar."
android:lines="1"/>

<Spinner
android:id="@+id/interpolador"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
/>

</LinearLayout>[/PHP]

Este es mi codigo java

[PHP]package com.JimSoft.Entertainment.edu.ChemistryTable;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends Activity {

TextView Texto;
Animation animacion1;
Spinner combo_spinner;

int [] interpolador = {
R.anim.acelerador

};

String [] interpolador_nombre = {
"accelerate"
};
ArrayAdapter<String> combo_adaptador;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);


Texto = (TextView) findViewById( R.id.TextoAnimable);

combo_adaptador = new ArrayAdapter<String> (
this,
android.R.layout.simple_spinner_item,
interpolador_nombre);

combo_spinner = (Spinner) findViewById(R.id.interpolador);
combo_spinner.setAdapter(combo_adaptador);
combo_spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> padre, View arg1,
int position, long id) {

animacion1 = AnimationUtils.loadAnimation(
MainActivity.this,
interpolador[position]);

//animacion1.setStartTime(1000);
Texto.startAnimation(animacion1);

}

@Override
public void onNothingSelected(AdapterView<?> padre) {
// TODO Auto-generated method stub

}

});
}
}[/PHP]

Y finalmente este es el xml de la animacion
[PHP]<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:fromXDelta="-100%p"
android:toYDelta="0"
android:duration="12000"
android:repeatCount="infinite"/>
</set>[/PHP]

Muchas gracias por toda la ayuda proporcionada.
Responder Con Cita
  #12  
Viejo 05/11/14, 16:53:04
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Bueno al final lo conseguí. no me funcionaba con la custom class de textview que comentaba kriogen es mas fácil de la forma que muestro lo único que hay que seleccionar el textview para que xute y no es esa mi solucion.

el xml es este :

Código:
<TextView
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:text="Small Text"
                class="com.rafaxplayer.amsfiles.classes.marqueTextView"
                android:id="@+id/marquetext"
                android:ellipsize="marquee"
                android:marqueeRepeatLimit="marquee_forever"
                android:singleLine="true"
                android:focusable="true"
                android:focusableInTouchMode="false" />
Lo que en el listenerclick del item en concreto hay que establecer el textview en selected=true.
Responder Con Cita
Gracias de parte de:
  #13  
Viejo 06/11/14, 10:01:05
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
 Cita: Originalmente Escrito por rafaxplayer Ver Mensaje
Bueno al final lo conseguí. no me funcionaba con la custom class de textview que comentaba kriogen es mas fácil de la forma que muestro lo único que hay que seleccionar el textview para que xute y no es esa mi solucion.

el xml es este :

Código:
<TextView
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:text="Small Text"
                class="com.rafaxplayer.amsfiles.classes.marqueTextView"
                android:id="@+id/marquetext"
                android:ellipsize="marquee"
                android:marqueeRepeatLimit="marquee_forever"
                android:singleLine="true"
                android:focusable="true"
                android:focusableInTouchMode="false" />
Lo que en el listenerclick del item en concreto hay que establecer el textview en selected=true.
Claro, ya te lo he dicho en el otro post, hay que engañar al sistema para que crea que siempre está Focused.

Yo en el XML lo defino así:

Código:
<com.rafaxplayer.amsfiles.classes.marqueTextView
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:text="Small Text"
                android:id="@+id/marquetext"
                android:ellipsize="marquee"
                android:marqueeRepeatLimit="marquee_forever"
                android:singleLine="true"
                android:focusable="true"
                android:focusableInTouchMode="true" />
Responder Con Cita
Gracias de parte de:
  #14  
Viejo 07/11/14, 01:00:30
Array

[xs_avatar]
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Tu operador: Otra
KriogeN eres lo maximo me funcionó de maravilla, el unico problema fue que tuve que cambiar el width a fill_parent por que no me mostraba todo el texto, gracias por tu ayuda.
Responder Con Cita
  #15  
Viejo 07/11/14, 20:35:59
Array

[xs_avatar]
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Tu operador: Otra
Hola de nuevo busque por todas partes comenzando por Stack over flow y no encontre nada, podrias decirme por favor como puedo hacer para cambiar el texto una vez que haya terminado pero el marque continue su animación no se si me entiendes... Gracias de antemano.
Responder Con Cita
  #16  
Viejo 07/11/14, 20:42:42
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
 Cita: Originalmente Escrito por LEAJIM_454 Ver Mensaje
Hola de nuevo busque por todas partes comenzando por Stack over flow y no encontre nada, podrias decirme por favor como puedo hacer para cambiar el texto una vez que haya terminado pero el marque continue su animación no se si me entiendes... Gracias de antemano.
No. No te entiendo.

¿Te refieres a hacer un setText nuevo cuando el marquee haya terminado?
Responder Con Cita
  #17  
Viejo 08/11/14, 06:35:49
Array

[xs_avatar]
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Tu operador: Otra
 Cita: Originalmente Escrito por kriogeN Ver Mensaje
No. No te entiendo. ¿Te refieres a hacer un setText nuevo cuando el marquee haya terminado?
Si, exactamente eso, setText pero no se como hacerlo... ¿podrias guiarme por favor?
Responder Con Cita
  #18  
Viejo 16/02/15, 16:37:59
Array

[xs_avatar]
gonza28 gonza28 no está en línea
Desarrollador
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Tu operador: Personal
Ya hice todo bien.
Pero tengo un problema:
El texto no llega a verse hasta el final. Ates de llegar al final, se repite la animacion desde el principio. Claro, texto de unos 90 caracteres. una o 2 palabras antes se reinicia la cuestion.

xml:

[PHP]<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Ejemplo."
gn28:cust_font="Chelsea"
android:textColor="@color/white"
android:id="@+id/textMarquee"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:focusable="true"
android:focusableInTouchMode="false"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:paddingLeft="10dip"
android:paddingRight="10dip" />[/PHP]

En la actividad:

[PHP]textMarquee=(TextView)findViewById(R.id.textMarque e);
textMarquee.setSelected(true);
//textMarquee.setSingleLine();
textMarquee.isFocused();[/PHP]
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 07:52:07 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /