Sunday, 15 November 2009

Android Reflective Surface

Reflection effect is pretty easy once you understand UI basics under Android.

Before going to platform specific implementation though, let's consider how this effect can be achieved in a graphics editing program (e.g. Inkscape, Photoshop)



First we select an area to be reflected, then we copy it to the desired place and flip it vertically. That's it, we may optionally overlay it with some gradient to achieve this cool fading out effect.

Now, back to Android implementation. I want to place my UI elements within a RelativeLayout and have it reflected to some ImageView every time whenever an element within that RelativeLayout gets redrawn.

Every UI element inherits from View class and so does RelativeLayout. View.onDraw(Canvas) gets called when a view needs to render its content. We need to override this method so that it triggers reflection. Within that method we need to notify ImageView to redraw itself using postInvalidate method. To do that I have created ReflectableLayout class.

Now here is a trick, we override ImageView's onDraw method as well, to do so I created ReflectiveSurface class. Inside that method we call ReflectableLayout's draw(Canvas) method with RelfectiveSurface's canvas as a parameter. This causes ReflectableLayout to render its content onto ReflectiveSurface. We just need then to add some canvas translations to the process.

That's basically it. If you need some gradient to your reflection you may add it in the XML layout file by placing gradient image over ReflectiveSurface. Source code (GPLv3 license) to this example is attached here.

Tuesday, 19 May 2009

Jamendo Player for Android

"Music should be free. Free as the air and the sky"
Prattchet, Terry. Soul Music.

These days big label companies and organizations like MPAA, RIAA are trying to force their laws on us, limiting our freedom. Just worth to mention: IPRED, 3-strikes or The Telecom Package ongoing battle.

Time to say NO.... and there are various ways to do so.

For over 2 moths now I have been working at Teleca Poland. More specifically, I participated in one R&D project - Jamendo Android Player, screenshot on your left :)

So what is Jamendo? Basically, it is a new way of music distribution. It protects artist copyrights instead of label's. Moreover labels are excluded from the process as distribution takes place over the internet - listeners can directly donate money to the artists if they like their music.

I sincerely hope this application will attract more people to Creative Commons - both musicians and listeners. Currently some may feel a little bit disappointed by a lack of big names in the Jamendo music catalogue. This will certainly improve over time, given more people join the community (we're over half a million already!).

Feature list available here

Friday, 15 May 2009

Android Last.fm source code released

It took some time at last.fm HQ to release the source code, but hey it's finally there :)

http://github.com/mxcl/lastfm-android/tree/master

Now get the compiler and have fun!

Friday, 23 January 2009

Last.fm client for Android

Last year, October 2008, I started the development of android.fm - the Last.fm client for Android. The inspiration was a demo trailer of the iPhone client I found somewhere on the net. I just wanted to know if I can write something similar. I didn't have and still don't have a real device so it was all done on the emulator.

After about a month, when my app matured, I contacted last.fm stuff to obtain the api key for my app - this is where I learned they were going to write something I had already working... well maybe not entirely :)

Anyway, we joined the forces, which was a good thing after all. I ported useful bits from my old application to the new official client... of course some parts had to be altered or completely rewritten. Working with last.fm stuff proved to be beneficial to the app - more people have been working over the code and the client itself gained a better UI design. Just after one month with the Christmas holidays in the meantime we deliver something working, hopefully.



All in all, the official client should be available in the Android Market in a matter of hours or is already available. It's the first public release so expect the bugs to pop up randomly - most certainly they will be fixed asap. In the future some new functionalities will be added.

PS

Last year there was no a single post on this blog... I didn't feel like writing so just get over it ;[

Wednesday, 12 December 2007

nie daj się oskubać

Idąc wczoraj w stronę uczelni trafiłem na taki oto znak:



Niestety na stronie UOKiK byłem ponad miesiąc temu, z zamieszczonych informacji wyszło mi, że moja sprawa powinna trafić do Federacji Konsumentów. Jak do tej pory nie otrzymałem odpowiedzi.

Rozumiem, że instytucjom "państwowym" zazwyczaj trzeba dać dłuższy czas na odpowiedź (państwowe kiepsko się sprawdza), ale ten czas już chyba minął. Najwyższa pora bardziej zintensyfikować działania, zwłaszcza w obliczu tak medialnej kampanii :]

Pierwszy telefon do Miejskiego Rzecznika Konsumentów w Łodzi, trochę poczekałem na podniesienie słuchawki... oczywiście to nie był ich problem, ale przynajmniej dostałem telefon do Delegatury UOKiK w Łodzi :)

Dzwonię... nikt nie odbiera. Po posiadanym numerze znalazłem w google więcej informacji o tejże delegaturze, między innymi drugi numer telefonu oraz adres e-mail. Dzwonię jeszcze raz, dostaję numer do Miejskiego Rzecznika Konsumentów - kłótnia, dostaję e-mail, który właśnie poznałem - nie potrzebnie zmarnowałem czas na bezproduktywne rozmowy z urzędnikami.

Tak więc wysłałem jeszcze raz ten sam list z drobnymi przeróbkami do UOKiK, CC do Gazety Wyborczej. Zobaczymy co z tego będzie, a na razie czekać...

Sunday, 9 December 2007

Epizod IV: Może jednak NIE...

Tak się złożyło, że jestem już w kontakcie z dwiema osobami z HP. Obie są odpowiedzialne za sprawy związane z licencjami... niestety wciąż brak odpowiedzi w sprawie "Vista refund". Zastanawia mnie czy firma tak duża jak HP nie wie co sprzedaje...

Dzień dobry
Bardzo mi przykro, że do tej pory nie otrzymał Pan satysfakcjonującej odpowiedzi w sprawie licencji OEM. Niestety ja nie jestem władna rozwiązać Pańskiego problemu. Zajmuję się obsługą wolumenowych umów licencyjnych Microsoft, ale jeśli chodzi o kanał detaliczny i OEM to niewiele mogę na ten temat powiedzieć. Nie chciałabym wprowadzać Pana w błąd nic nieznaczącymi dywagacjami i spekulacjami.

Jeśli tak zdecydowanie nie życzy Pan sobie systemu Microsoft na notebook'u alternatywą może być rozważenie innego modelu notebooka, który będzie satysfakcjonował Pana pod względem parametrów technicznych. Dodatkowo warto wziąć pod uwagę możliwość zamówienia wersji Vista Business a nie Home. Vista Bussines ma wiele zalet a między innymi prawo downgrade'u nawet przy wersji OEM. Więcej informacji na temat warunków downgrade dla Vista Business znajdzie Pan na stronach Microsoft. Może jednak da się Pan przekonać do systemu Microsoft.....



...i moja odpowiedź:

Witam!

Dziękuję za odpowiedź, ale czy tak trudno przeczytać licencję OEM i dać odpowiedź na jej podstawie?

Poza tym proszę mi łaskawie wytłumaczyć Pani tok rozumowania, bo chyba czegoś w nim nie pojąłem, tudzież umknęło mojej uwadze. Wyraźnie napisałem, że nie chcę systemu operacyjnego firmy Microsoft, ponieważ nie chcę za niego płacić - chcę otrzymać zwrot PIENIĘDZY. W jaki sposób zakup droższej wersji Business i darmowy downgrade do WinXP (bo chyba nie do VHP) ma umożliwić mi otrzymanie rekompensaty finansowej? Ja wiem, że Pani tego nie wymyśliła, ale to chyba jakiś dekadencki debilizm kupować droższy system i robić downgrade do gorszej wersji?!

...i nie dam się przekonać do systemu Microsoft, bo jego używanie równa się z utratą wolności osobistej [link nr 1]. Poza tym, cóż mi przyjdzie po 64-bitowym procesorze działającym na 32-bitowej Viście?... może jednak to HP powinno się przekonać do zaoferowania swoim klientom możliwości rezygnacji z systemu operacyjnego na życzenie? Nie wspominam już o Linuksie którego używam na co dzień do pracy, bo Microsoft spaliłby Panią na stosie.

Pozdrawiam,
Łukasz Wiśniewski
[1] http://badvista.fsf.org/what-s-wrong-with-microsoft-windows-vista


Pocieszające jest, że MacSlow, twórca między innymi cairo-clock czy lowfat, otrzymał ostatnio "Vista refund" od Lenovo. Co prawda miało to miejsce w Niemczech, ale będzie się na co powoływać, do Lenovo jeszcze nie pisałem, ale chyba to zrobię, jak upatrzę sobie u nich jakiś fajny model notebooka :) c.d.n.

Sunday, 2 December 2007

Cover art with some Clutter



This is my further work on Clutter and Rhythmbox just this time it is actually supposed to do something useful. At least more useful than just spinning that red hand endlessly ;P Fetching covers is done by transplanted API from the original Cover Art by James Livingstone - GUI is Clutter powered of course.

So that's basically it, not mentioning that half of the Cover Art API still remains unclear to me as I have focused on getting the appropriate clutter stage background color. Still, the way it's done is hackish so must be redone.

You need python-clutter package to run this, source code is available via subversion from
svn checkout http://coverartclutter.googlecode.com/svn/trunk/ coverartclutter