Skip to main content

Android: come estendere una ImageView in larghezza adattando l’altezza in modo proporzionale

Può capitare, sviluppando una app per dispositivi Android, di avere l’esigenza di estendere le dimensioni di una immagine in modo da farle coprire orizzontalmente tutto lo schermo disponibile, mantenendo inalterate le sue proporzioni. Questo significa che l’altezza dell’immagine suddetta dovrà adattarsi in modo proporzionale alla larghezza, così da mantenere inalterato l’aspect ratio originario.

Il problema

Ottenere questo risultato in HTML è estremamente semplice: è sufficiente impostare la width dell’immagine in questione al 100%, omettendo qualsiasi informazione in merito alla height e lasciando così che sia il browser a determinarla in modo proporzionale. Sfortunatamente, in Android la questione è più complessa: nell’elemento ImageView altezza e larghezza sono due parametri obbligatori, che è possibile valorizzare con un numero fisso in px, dp o altro, in base al contenitore mediante il comando match_parent oppure in base al contenuto mediante il comando wrap_content. In tutti e tre i casi non è possibile definire un comportamento dell’altezza realmente proporzionale rispetto al contenuto. Il meglio che è possibile fare utilizzando una normale ImageView è impostare gli attributi android:layout_widthandroid:layout_height e android:scaleType in modo che si adattino automaticamente alle dimensioni del layout contenitore nel seguente modo:

Questo metodo consente di ottenere il risultato sperato nella maggior parte degli scenari, ma ha il grande difetto di non funzionare allo stesso modo su tutti i dispositivi Android e con tutte le immagini.

La soluzione

Chi ha detto che è necessario utilizzare una normale ImageView? Questo interessantissimo post su StackOverflow mostra come è possibile estendere una View per ottenere un risultato analogo a quello che stiamo cercando. Partendo da quell’esempio possiamo quindi sviluppare una estensione della classe ImageView che dimensioni automaticamente l’altezza sulla base del ridimensionamento della larghezza in modo proporzionale rispetto all’aspect ratio dell’immagine originaria.

Questo il codice completo:

 

E questa è l’implementazione all’interno di un layout XML:

Ricordate, in entrambi gli esempi, di sostituire com.my.namespace con il  namespace utilizzato nella vostra applicazione.

Felice sviluppo!

 

Twitter Webinar del 10 febbraio: TwitterAnalytics, TwitterAds, QuickPromote e altro

Si è concluso da poche ore il primo Twitter Webinar del 2015, dedicato agli strumenti di monitoring e promozionali offerti dalle due piattaforme ad uso business: analytics.twitter.com e ads.twitter.com, entrambe accessibili utilizzando le credenziali del proprio account twitter.

La piattaforma analytics.twitter.com è uno strumento gratuito che consente di analizzare il traffico dei nostri tweet e misurare il tasso di interazione di ciascuno di essi:

analytics.twitter.com - Screenshot 1
analytics.twitter.com è lo strumento gratuito mediante il quale è possibile misurare le visualizzazioni e le interazioni dei nostri tweet.

 

Oltre al pannello principale, che offre una overview completa di tutte le nostre ultime attività su Twitter, è possibile accedere alla dashboard dedicata ai Follower: quest’ultima, oltre a un grafico riassuntivo dell’attività, fornisce interessanti informazioni sul comportamento e sulle abitudini degli stessi. E’ possibile visualizzare i loro ambiti di interesse, la zona geografica di provenienza, il genere e, soprattutto, una lista aggregata degli altri account Twitter più seguiti. Quest’ultima informazione può essere molto importante in quanto consente di conoscere meglio le abitudini e le attività dei nostri Follower, informazione fondamentale per rendere più attraenti i contenuti del nostro canale.

analytics.twitter.com-02
Analytics: la dashboard dedicata ai Follower

 

I dati presentati nelle dashboard possono essere agevolmente esportati in formato .CSV per analisi ulteriori mediante il pulsante Esporta dati presente nella schermata principale.

Una delle funzionalità più interessanti fornite dalla piattaforma Analytics è quella che consente di analizzare i dettagli di un singolo tweet: panoramica delle visualizzazioni, risposte, retweet e click sul contenuto. Informazioni utili per comprendere se il tweet è stato efficace e se è riuscito nell’intento di coinvolgere i nostri followers, nonché raggiungere nuovi potenziali utenti.

analytics.twitter.com-03
Analytics: finestra di dettaglio su un singolo tweet

 

Mediante il pannello Dettagli sul tweet è anche possibile accedere a QuickPromote, una funzionalità a pagamento che consente di sponsorizzare il nostro contenuto ottenendo click e interazioni ulteriori. Si tratta di uno strumento particolarmente efficace per promuovere il nostro canale, stando a quanto detto dal relatore del webinar, risulta particolarmente efficace per i tweet che hanno avuto particolare successo tra i nostri follower: quelli che, in altre parole, si siano mostrati particolarmente efficaci.

Per utilizzare la funzionalità QuickPromote è necessario avere uno strumento di pagamento configurato sul proprio account. Per far questo è necessario accedere alla seconda piattaforma presentata dal webinar, ovvero ads.twitter.com. Quest’ultimo è uno strumento a pagamento che consente di impostare vere e proprie campagne promozionali per il nostro canale:

ads.twitter.com-01
ads.twitter.com è la piattaforma a pagamento per la pianificazione di campagne promozionali, obiettivi, conversioni etc.

 

La piattaforma di advertising è lo strumento commerciale da utilizzare per impostare il proprio business su Twitter. Consente infatti di pianificare le campagne, visualizzare singole metriche, conversioni, tasso di conversione, statistiche dei tweet e così via. Il funzionamento, semplice e intuitivo, è molto simile alla piattaforma business di Facebook e di altri social network similari ed utilizza la medesima terminologia.

Anche in questo caso, tutti i dati presentati nelle varie dashboard possono essere agevolmente esportati in formato .CSV per analisi ulteriori.

Oltre alla presentazione delle due piattaforme il webinar ha approfondito una serie di concetti-chiave utili per chiunque abbia interesse a utilizzare twitter in modo più efficace: a beneficio di chi non ha avuto modo di sentirlo li riassumo di seguito:

  • Tenere d’occhio gli interessi dei follower: è fondamentale impostare i tweet sulla base degli argomenti seguiti dai nostri followers, visibili nella dashboard apposita, così da incrementare le interazioni.
  • Impostare le campagne tenendo presente la zona di provenienza e il genere dei follower: questo è particolarmente importante quando si impostano le campagne TwitterAds e quando si preparano tweet relativi a promozioni e/o offerte speciali, che vanno indirizzate (e geo-indirizzate) nel modo giusto.
  • Osservare gli altri account Twitter più seguiti dai nostri follower: si tratta di una analisi molto utile se il nostro obiettivo è quello di raggiungere un pubblico simile a quello che ci sta già seguendo. Vedere cosa altro piace loro è fondamentale per preparare contenuti più attraenti e interessanti.
  • Ricordarsi che la nostra comunità di follower è in costante evoluzione. Twitter è mutevole come il web: gli interessi degli utenti cambiano spesso, così come le mode e le tendenze. Per questo è importante tenersi aggiornati, osservando con costanza gli interessi e le abitudini di chi ci segue. Se impariamo a conoscere meglio il nostro pubblico, il contenuto che pubblicheremo sarà probabilmente più apprezzato e porterà a maggiori interazioni / click / acquisti.

DOMANDE e RISPOSTE

Concludo questa panoramica del webinar con un rapido elenco delle domande e risposte fornite dal relatore agli utenti che hanno partecipato:

Come viene calcolato il Tasso di interazione di ciascun Tweet presente nella dashboard principale di analytics.twitter.com?
Il tasso di interazione non è altro che la somma del numero dei retweet/risposte, diviso per il numero totale di visualizzazioni.

Qual è la cadenza giusta per promuovere e pubblicare offerte commerciali?
Non c’è una risposta precisa, in quanto non esiste una regola uguale per tutti le situazioni: occorre procedere per tentativi secondo la logica del trial and error. I dati di monitoring forniti dalla piattaforma analytics.twitter.com possono essere d’aiuto  in questo, consentendo di tenere sotto controllo ogni singolo tweet.

E’ consigliabile utilizzare elementi rich media (foto, video, cards, etc.) all’interno dei propri tweet?
L’utilizzo di rich media è sempre consigliato, in quanto i contenuti multimediali garantiscono un tasso di interazione mediamente più elevato. Il contenuto di un tweet che contiene foto o video tende ad essere più interessante: l’utilizzo di creatività originale, foto, cards etc. porta generalmente ad avere tweet più visti e maggiormente condivisi.

Cosa sono (e a cosa servono) le Twitter Cards?
Si tratta di un contenuto rich media composto da un blocco di immagine, testo e pulsante che è possibile aggiungere a un tweet. E’ dimostrato che i tweet corredati da una card raddoppiano (solitamente) il tasso di interazione. Per maggiori informazioni sulle Twitter Cards è possibile consultare l’apposita guida ufficiale. In ogni caso, il relatore ha anticipato che sarà l’argomento del prossimo webinar: non perdetevelo!

Quando è previsto il prossimo webinar?
La data del webinar dedicato alle Twitter Cards non è ancora stata decisa. Per essere sempre informati sui webinar organizzati da Twitter Italia, l’hashtag da utilizzare è #TwitterAcademy.

Dove posso trovare i webinar già trasmessi?
Tutti i webinar del 2014 sono disponibili nell’apposita pagina del blog di Twitter.com.

Un grazie particolare a @petrussola, relatore del webinar ed interlocutore competente e preparato. Alla prossima!

 

Impostare un campo ID auto-increment con Entity Framework Code-First

Ho già avuto modo in un vecchio post di parlare delle potenzialità del nuovo approccio code-first introdotto da Entity Framework 6 che consente, tra le altre cose, di definire un data model completo partendo da una o più classi C# dette, per l’appunto, Entities. Una delle domande più frequenti che mi sono state fatte è quella relativa a come impostare il campo Id (o chiave primariao primary key) di una Entity in modo autoincrementale: in altre parole, come dire al Database di assegnare un identificativo numerico crescente ad ogni record.

Tanto MySQL quanto Microsoft SQL Server supportano in modo nativo colonne autoincrementali. Come fare in modo che il campo di una Entity venga definito in tal modo sul DB che andremo a generare?

La risposta è semplice: è sufficiente decorare la nostra proprietà con un apposito DatabaseGeneratedAttribute, specificando che si tratta di una identità generata automaticamente dal Database nel seguente modo:

Il campo ID sarà generato in modo autoincrementale, garantendo un ID univoco a ciascun record di tipo Item.

Felice sviluppo!

Tastiera virtuale di Windows 8: come disabilitarla

Come tutti i sistemi operativi mobile-ready, anche Windows 8 è dotato di una pratica tastiera virtuale che consente agli utenti con dispositivi dotati di schermo touch di inserire testi premendo i tasti o tramite le cosiddette handwriting gestures. Una volta configurata, la tastiera appare automaticamente ogniqualvolta l’utente attiva una casella di testo all’interno di un browser web, una applicazione desktop, etc.:

fuller_keyboard

Ovviamente ci sono numerosi casi in cui questa funzionalità, presente nelle installazioni della maggior parte dei portatili con schermo touch, è assolutamente inutile… ad esempio, quando il portatile in questione è dotato di una tastiera hardware.

La domanda è dunque: come disattivarla?

la risposta è semplice: la tastiera virtuale fa parte del servizio di sistema denominato “Touch screen keyboard and handwriting panel” (in italiano: “Servizio tastiera virtuale e pannello per la grafia”). Per disattivarla occorre quindi:

  • Premere il tasto Windows + W (per aprire lo strumento di ricerca)
  • Digitare “servizi” e premere invio (per aprire il pannello dei servizi locali)
  • Scorrere la lista fino a visualizzare il Servizio tastiera virtuale e pannello per la grafia.
  • Evidenziare il servizio suddetto e fare clic su Stop (per arrestare il servizio).
  • Nel caso in cui il Tipo di Avvio del servizio sia impostato su Automatico, vi converrà anche impostarlo su Manuale (o, se preferite, su Disabilitato) facendo doppio clic sul servizio e poi impostando in tal modo la casella a discesa relativa.

Ricordate che, se il servizio suddetto non è in esecuzione, anche la funzionalità di riconoscimento delle handwriting gestures sarà disattivata: questo significa che non sarà possibile scrivere “a mano” sul touch-screen del dispositivo. Del resto, se disponete di una tastiera hardware, è probabile che non ne sentirete mai la mancanza in ogni caso.

 

Close