elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema Android (SchrolView Control personalizado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema Android (SchrolView Control personalizado)  (Leído 982 veces)
LaThortilla (Effort)

Desconectado Desconectado

Mensajes: 234


¿En que vida harás lo que en esta no?


Ver Perfil WWW
Problema Android (SchrolView Control personalizado)
« en: 14 Mayo 2014, 14:47 pm »

Buenos dias..

Primero que todo quiero saludarlos. Tengo ya un tiempo desde que no posteo algo, creo que he avanzado mucho desde entonces y espero poder colaborar algo con el foro.

Bueno Recién comienzo con android y me he encontrado con una pequeña dificultad que agradecería me orientaran un poco...

he creado un control personalizado que extiende de la clase HorizontalScrollView y he sobre escrito algunos metodos  bueno aqui les dejo la clase:

Código
  1. package binario.thinki;
  2.  
  3.  
  4. import binario.thinki.avatars.AdapterHgallery;
  5. import binario.thinki.avatars.ZeroChildException;
  6.  
  7. import android.app.Activity;
  8. import android.content.Context;
  9. import android.graphics.Color;
  10. import android.util.AttributeSet;
  11. import android.view.View;
  12. import android.view.ViewGroup;
  13. import android.widget.HorizontalScrollView;
  14. import android.widget.LinearLayout;
  15.  
  16.  
  17. public class Hgalery  extends HorizontalScrollView {
  18. Activity context;
  19.    int prevIndex = 0;
  20.  
  21. public Hgalery(Context context, AttributeSet attrs, Activity Context) {
  22. super(context, attrs);
  23. // TODO Auto-generated constructor stub
  24. this.context =  (Activity) context;
  25.     this.setSmoothScrollingEnabled(true);
  26. }
  27.  
  28.   public Hgalery(Activity context, AttributeSet attrs) {
  29.       super(context, attrs);
  30.        this.context = context;
  31.        this.setSmoothScrollingEnabled(true);
  32.    }
  33.  
  34.    public void setAdapter(Context context, AdapterHgallery mAdapter) {
  35.  
  36.        try {
  37.            fillViewWithAdapter(mAdapter);
  38.        } catch (ZeroChildException e) {
  39.  
  40.            e.printStackTrace();
  41.        }
  42.    }
  43.  
  44.  
  45.    private void fillViewWithAdapter(AdapterHgallery mAdapter)
  46.            throws ZeroChildException {
  47.        if (getChildCount() == 0) {
  48.            throw new ZeroChildException(
  49.                    "CenterLockHorizontalScrollView must have one child");
  50.        }
  51.        if (getChildCount() == 0 || mAdapter == null)
  52.            return;
  53.  
  54.        ViewGroup parent = (ViewGroup) getChildAt(0);
  55.  
  56.        parent.removeAllViews();
  57.  
  58.        for (int i = 0; i < mAdapter.getCount(); i++) {
  59.            parent.addView(mAdapter.getView(i, null, parent));
  60.        }
  61.    }
  62.  
  63.    @SuppressWarnings("deprecation")
  64. public void setCenter(int index) {
  65.  
  66.        ViewGroup parent = (ViewGroup) getChildAt(0);
  67.  
  68.        View preView = parent.getChildAt(prevIndex);
  69.        preView.setBackgroundColor(Color.parseColor("#64CBD8"));
  70.        android.widget.LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
  71.                LinearLayout.LayoutParams.WRAP_CONTENT,
  72.                LinearLayout.LayoutParams.WRAP_CONTENT);
  73.        lp.setMargins(5, 5, 5, 5);
  74.        preView.setLayoutParams(lp);
  75.  
  76.        View view = parent.getChildAt(index);
  77.        view.setBackgroundColor(Color.RED);
  78.  
  79. int screenWidth = context.getWindowManager().getDefaultDisplay().getWidth();
  80.  
  81.        int scrollX = (view.getLeft() - (screenWidth / 2))
  82.                + (view.getWidth() / 2);
  83.        this.smoothScrollTo(scrollX, 0);
  84.        prevIndex = index;
  85.    }
  86.  
  87. }
  88.  


No estoy muy seguro pero creo que existen 2 formas de instanciarla en el activity principal.

1. mediante xml (esta estoy seguro que se puede) pero por alguna razon me genera un error, tengo poca experiencia depurando errores en android y no logro dar con el. solo no inicia la activity (tengo que leer un poco sobre esto).


2. mediante codigo java pero no se como ( he buscando en google pero no logro dar con este) dado que solo aparecen ejemplos de inflar layouts (xml) y no desde una clase java...

Bueno aqui os dejo el codigo del adapter que ocupa la clase:
Código
  1. package binario.thinki.roomitems;
  2.  
  3.  
  4. import java.util.List;
  5.  
  6.  
  7.  
  8. import android.app.Activity;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import android.view.View.OnClickListener;
  12. import android.widget.BaseAdapter;
  13.  
  14.  
  15. public class AdapterItemRoom extends BaseAdapter{
  16.  
  17. Activity _Activity;
  18. List<ItemRoom> Rooms;
  19. private OnClickListener Listener;
  20.    public AdapterItemRoom(Activity _Activity,List<ItemRoom> Rooms, OnClickListener Listener){
  21. this._Activity = _Activity;
  22. this.Rooms = Rooms;
  23. this.Listener =Listener;
  24. }
  25.  
  26. public int getCount() {
  27. return Rooms.size();
  28. }
  29.  
  30. @Override
  31. public Object getItem(int position) {
  32. return Rooms.get(position);
  33. }
  34.  
  35. @Override
  36. public long getItemId(int position) {
  37. // TODO Auto-generated method stub
  38. return 0;
  39. }
  40.  
  41.  
  42. public View getView(int position, View arg1, ViewGroup arg2) {
  43. ListItemRooms lsRooms = new ListItemRooms(_Activity,Rooms.get(position), Listener);
  44. return lsRooms;
  45. }
  46.  
  47. }
  48.  
  49.  

De antemano muchas gracias.

(si me corriges te lo agradeceré)


« Última modificación: 22 Mayo 2014, 06:09 am por Effort » En línea

LaThortilla (Effort)

Desconectado Desconectado

Mensajes: 234


¿En que vida harás lo que en esta no?


Ver Perfil WWW
Re: Problema Android (SchrolView Control personalizado)
« Respuesta #1 en: 19 Mayo 2014, 00:36 am »

jajaj pensé que seria mas rápido.....


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿¿¿Como crear un control personalizado..
Programación Visual Basic
Kyori 1 1,413 Último mensaje 21 Octubre 2007, 22:35 pm
por HaDeS, -
Aplicacion android control remoto arduino
Electrónica
R0BERT0 0 2,493 Último mensaje 15 Septiembre 2013, 10:46 am
por R0BERT0
android estado personalizado o modificado
Android
laur122 3 5,204 Último mensaje 4 Agosto 2015, 17:50 pm
por laur122
MOVIDO: android estado personalizado o modificado
Dudas Generales
Songoku 0 1,086 Último mensaje 4 Agosto 2015, 23:40 pm
por Songoku
Crear control personalizado, para mostrar una regla con zoom y pan.
.NET (C#, VB.NET, ASP)
Harold23 2 2,815 Último mensaje 8 Julio 2017, 16:26 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines