Πέμπτη 12 Ιουνίου 2014

Android Color Picker

Υπάρχουν αρκετές βιβλιοθήκες για Android που υλοποιούν color pickers. Μία αρκετά καλή και εύκολη στη χρήση (αν και έχει καιρό να συντηρηθεί) είναι η παρακάτω:

android-ColorPickerPreference

Είναι υλοποιημένη σαν library (επομένως την προσθέτουμε σαν reference στο project μας) και μπορεί να χρησιμοποιηθεί με διάφορους τρόπους. Ο πιο γρήγορος είναι ως εξής:

 import net.margaritov.preference.colorpicker.ColorPickerDialog;  
 ...  
  ColorPickerDialog cpd=new ColorPickerDialog(context, Color.BLACK);//το Color.BLACK είναι το αρχικό χρώμα  
  //μπορούμε να χρησιμοποιήσουμε οποιοδήποτε χρώμα    
  cpd.setAlphaSliderVisible(true); //προαιρετικό, αν θέλουμε να επιλέγουμε διαφάνεια   
  cpd.setOnColorChangedListener(onColorChangedListener); //για να πάρουμε πίσω το επιλεγμένο χρώμα στην activity μας   
  cpd.show();   

Και ο listener στον οποίο παίρνουμε το επιλεγμένο χρώμα:

 private ColorPickerDialog.OnColorChangedListener onColorChangedListener=new ColorPickerDialog.OnColorChangedListener(){  
      @Override  
      public void onColorChanged(int color) {  
           //η color περιέχει το επιλεγμένο χρώμα  
           //εδώ μπορούμε να το χρησιμοποιήσουμε  
      }  
 };  

Τετάρτη 28 Μαΐου 2014

Εφαρμογές Android στο PC

Τον τελευταίο καιρό έχουν εμφανιστεί διάφορες εφαρμογές οι οποίες δίνουν τη δυνατότητα να εκτελέσουμε εφαρμογές Android στο PC μας.

Μία από αυτές είναι το bluestacks, το οποίο ουσιαστικά προσομοιώνει τη λειτουργία ενός κινητού τηλεφώνου Android. Η εφαρμογή είναι δωρεάν (τουλάχιστον για την ώρα) και εύκολη στη χρήση, μιας και ουσιαστικά χειρίζεσαι ένα κινητό τηλέφωνο με το ποντίκι. Η εγκατάσταση εφαρμογών γίνεται μέσα από το Play Store.

Υπάρχουν και άλλες τέτοιες προσπάθειες, όπως το andyroid, το οποίο όμως απαιτεί περισσότερους πόρους.

Σάββατο 24 Μαΐου 2014

android:imeOptions και android:inputType

Για να δουλέψει σωστά το XML attribute android:imeOptions (π.χ. actionDone σε ένα edittext) πρέπει να έχουμε ορίσει και το attribute android:inputType (π.χ. number)

Σάββατο 10 Μαΐου 2014

Πάτα και Πέτα - Square Bird Game

Ένα απλό παιχνίδι που ακολουθεί τη γνωστή πλέον τακτική του "πάτα και πέτα". Πατήστε στην οθόνη για να πετάξει το πουλί και να περάσει τα εμπόδια.
Βρείτε το εδώ:

Get it on Google Play

A simple game in the popular "tap and fly" manner. Tap the screen to make the bird fly and go through the obstacles.
Find it here:

Get it on Google Play




Σελιδοδείκτες σε λίστα widget - Bookmarks in a list Widget

Ένα απλό widget που δείχνει τους σελιδοδείκτες (bookmarks) του κινητού σας (από τον stock browser του Android ή/και τον Google Chrome) σε μια κυλιόμενη λίστα.
Βρείτε το εδώ:

Get it on Google Play

This is a simple widget that shows your bookmarks (from Android's stock browser or Google Chrome) as a scrollable list.
Find it here:

Get it on Google Play




Η εφαρμογή είναι ελεύθερο λογισμικό: https://github.com/jvlach/BookmarksListWidget
This app is Open Source Software: https://github.com/jvlach/BookmarksListWidget

Πέμπτη 1 Μαΐου 2014

libgdx και Google Ads

Αναβαθμίζοντας μία εφαρμογή ώστε να χρησιμοποιεί το νέο Google Mobile Ads SDK και όχι το παλιότερο standalone Admob sdk (το οποίο έχει γίνει deprecated), αντιμετώπισα ένα περίεργο πρόβλημα:
 Ενώ το adview φορτωνόταν κανονικά, παρέμενε αόρατο έως ότου γινόταν κάποια κίνηση που θα ανανέωνε την οθόνη (π.χ. σβήσιμο οθόνης και ενεργοποίησή της).
Τελικά η λύση είναι απλή. Αρκεί να ορίσεις κάποιο φόντο στο adview:

adMobView.setBackgroundColor(getResources().getColor(android.R.color.transparent));

Στη δική μου περίπτωση, χρησιμοποίησα διάφανο φόντο, αλλά μπορεί να χρησιμοποιηθεί οποιοδήποτε χρώμα.

Τρίτη 29 Απριλίου 2014

android:layout_weight

Με τη χρήση του attribute android:layout_weight στα xml layouts στο android ορίζουμε το χώρο που θέλουμε να καταλαμβάνουν τα διάφορα αντικείμενα.
Π.χ. αν έχουμε ένα οριζόντιο LinearLayout με δύο TextViews και ορίσουμε weight 0.4 στο ένα και 0.6 στο άλλο, τότε το πρώτο θα καταλάβει το 40% του χώρου και το δεύτερο το 60%. Για να δουλέψει η μέθοδος αυτή θα πρέπει στην αντίστοιχη διάσταση των αντικειμένων μέσα στο layout δώσουμε τιμή 0dp. Στο παραπάνω παράδειγμα θα πρέπει το layout_width στα δύο TextViews να είναι 0dp.

Παρασκευή 21 Μαρτίου 2014

Android emulator: unfortunately, launcher has stopped

Αν στον Android emulator εμφανίζεται το μήνυμα "unfortunately, launcher has stopped", τότε πρέπει να αυξήσουμε το VM heap στην Virtual device που χρησιμοποιούμε (μέσω του AVD Manager)