Android Interface/Native Android GUI

From Lazarus wiki
Revision as of 19:42, 2 January 2012 by Reverse22 (talk | contribs)
Jump to navigationJump to search

Go back to Android Interface

Android4Pascal

See the page about Android4Pascal, which is the bindings between Pascal programs and the Android Java APIs.


Manifest configuration

Control the program restart

By default the program will restart on orientation change, on keyboard change, and in a lot of other cases. This is usually unwanted. To disable program restart on keyboard showing and orientation changed add this to the manifest file:

 <activity
    ...
    android:configChanges="orientation|keyboardHidden"

See also:

Resource files

Guidelines for the Icons

Read here: http://developer.android.com/guide/practices/ui_guidelines/icon_design.html

Using other APIs

Using the Timer

The Android API bindings include a handy timer control called TAndroidTimer. It works just like a Runnable, and inside it a Handler class is utilized to run the Runnable in the main GUI thread so that event executed in this timer can call Android APIs.

Timer example

<delphi> program turbochessclock4android;

{$mode objfpc}{$H+}

uses

 Classes, SysUtils, androidpipescomm, androidview, javalang,
 androidapp, androidtimer;//, gles11;

type

 TEventHandler = class
 public
   procedure HandleOnTimer(ASender: TObject);
   procedure buttonClickCallback(v: TView);
 end;

var

 //...
 TimerCount: Integer = 0;
 MyTimer: TAndroidTimer;
 MyEventHandler: TEventHandler;

procedure TEventHandler.buttonClickCallback(v: TView); begin

 MyTimer.postDelayed(100);

end;

procedure TEventHandler.HandleOnTimer(ASender: TObject); begin

 Inc(TimerCount);
 tv.setText(Format('Timer event #%d', [TimerCount]));
 MyTimer.postDelayed(1000);

end;

begin

 MyEventHandler := TEventHandler.Create;
 // ...

end. </delphi>

reverse lookup

reverse phone lookup cell