Intanto salvo qui i codici di refreshScreen e di leggiDaDatabase.
//Ricarica la schermata. private void refreshScreen(){ mainLayout.removeAllViews(); try{ leggiDaDatabase(currentCat); } catch(Exception e){} txtBarraCategoria.setText(currentCat); } private void leggiDaDatabase(String categoria){ Cursor crs=helper.query(categoria); do{ LinearLayout layout=new LinearLayout(this); //crea la TextView ETICHETTA TextView txtEtichetta=new TextView(this); txtEtichetta.setText(crs.getString(1)); txtEtichetta.setHeight(30); txtEtichetta.setSingleLine(false); layout.addView(txtEtichetta); //crea la TextView CATEGORIA TextView txtCategoria=new TextView(this); txtCategoria.setText(crs.getString(2)); //...che non deve occupare spazio. txtCategoria.setVisibility(View.GONE); layout.addView(txtCategoria); //crea la ImageView IMMAGINE ImageView imageView=new ImageView(this); imageView.setImageBitmap(Funzioni.StringToBitmap(crs.getString(3))); layout.addView(imageView); imageView.getLayoutParams().width=100; imageView.getLayoutParams().height=100; //crea la TextView TIPO TextView txtTipo=new TextView(this); txtTipo.setText(crs.getString(4)); //...che non deve occupare spazio txtTipo.setWidth(0); txtTipo.setHeight(0); txtTipo.setVisibility(View.GONE); layout.addView(txtTipo); //marca le views di tipo "categoria".Utile metterci il modello //grafico di cartella predeterminato. if(txtTipo.getText().equals("categoria")){ GradientDrawable gd=new GradientDrawable(); gd.setColor(Color.WHITE); gd.setStroke(5, Color.RED); layout.setBackground(gd); } else{ layout.setBackgroundColor(Color.WHITE); } layout.setOrientation(LinearLayout.VERTICAL); RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.leftMargin=crs.getInt(5); params.topMargin=crs.getInt(6); params.rightMargin=-250; params.bottomMargin=-250; layout.setLayoutParams(params); layout.setGravity(1); //layout.setOnTouchListener(onTouchListener); mainLayout.addView(layout); if(txtTipo.getText().equals("categoria")){ layout.getLayoutParams().width=imageView.getLayoutParams().width+20+10; }else{ layout.getLayoutParams().width=imageView.getLayoutParams().width+20; } layout.getLayoutParams().height=imageView.getLayoutParams().height+35; } while(crs.moveToNext()); }Bene.
Ora ricostruisco la seconda.
Ecco:
//Ricarica la schermata. private void refreshScreen(){ mainLayout.removeAllViews(); try{ leggiDaDatabase(currentCat); } catch(Exception e){} txtBarraCategoria.setText(currentCat); } private void leggiDaDatabase(String categoria){ Cursor crs=helper.query(categoria); do{ View view=new View(this); RelativeLayout.LayoutParams params= new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT); params.width=100; params.height=100; params.topMargin=crs.getInt(6); params.leftMargin=crs.getInt(5); view.setLayoutParams(params); view.setBackgroundColor(Color.WHITE); mainLayout.addView(view); } while(crs.moveToNext()); }Con questo codice, lo scrolling funziona.
Non so dove diavolo sia il motivo per cui copiando la funzione del vecchio programma lo scrolling non funzionasse... ma meglio rigenerare il tutto e, con l'occasione, fare quelle immagini un attimino più eleganti.
Ma un momento! C'è tutta una serie di sviluppi possibili per rifare quelle immagini del vecchio programma, che in effetti facevano letteralmente cacare...
Nessun commento:
Posta un commento