Subversion Repositories Projects

Compare Revisions

Regard whitespace Rev 83 → Rev 84

/DUBwise/src/Android/src/org/ligi/DUBwiseView.java
0,0 → 1,177
package org.ligi;
 
import android.app.Activity;
import android.os.Bundle;
 
import android.app.Activity;
import android.os.Bundle;
 
import android.view.View;
import android.widget.TextView;
 
 
import android.app.Activity;
import android.content.Context;
import android.graphics.*;
import android.os.Bundle;
import android.os.*;
import android.view.View;
 
import java.util.Random;
 
import android.view.Window;
import android.view.WindowManager;
import android.view.KeyEvent;
 
import android.graphics.Region.Op;
 
import org.bluez.*;
 
public class DUBwiseView
extends View
implements DUBwiseDefinitions
 
{
private Paint mPaint = new Paint();
 
public static int LCD_CHAR_COUNT=222;
// some images we need
private Bitmap bg_img,lcd_tiles,lcd_img;
 
// pos for scrolling
private int pos=0;
 
String str1="";
String[] lcd_lines;
long last_run=0;
int last_key=0;
 
int wi,he;
// Activity context;
 
Activity root;
int lcd_top;
int menu_y=0;
 
public DUBwiseView(Context context) {
super(context);
root=(Activity) context;
lcd_lines=new String[main_menu_items.length];
for (int y=0;y<main_menu_items.length;y++)
lcd_lines[y]=" " + main_menu_items[y];
// needed to get Key Events
setFocusable(true);
}
 
public Bitmap resize_to_screen(Bitmap orig,float x_scale_,float y_scale_)
{
// createa matrix for the manipulation
Matrix matrix = new Matrix();
float x_scale,y_scale;
if (y_scale_!=0f)
y_scale= (getHeight()*y_scale_ )/orig.height();
else // take x_scale
y_scale=(getWidth()*x_scale_ )/orig.width();
 
if (x_scale_!=0f)
x_scale= (getWidth()*x_scale_ )/orig.width();
else
x_scale= (getHeight()*y_scale_ )/orig.height();
 
matrix.postScale(x_scale , y_scale);
return Bitmap.createBitmap(orig, 0, 0,(int)( orig.width()),(int)( orig.height()), matrix, true);
}
 
 
public boolean onKeyDown(int keyCode, KeyEvent event)
{
switch ( keyCode)
{
case KeyEvent.KEYCODE_DPAD_DOWN :
menu_y++;
break;
case KeyEvent.KEYCODE_DPAD_UP :
menu_y--;
break;
 
case KeyEvent.KEYCODE_DPAD_CENTER :
root.finish();
break;
}
 
last_key=keyCode;
calc_lcd();
invalidate();
return true;
}
 
@Override protected void onSizeChanged(int w, int h, int oldw, int oldh)
{
bg_img = resize_to_screen(BitmapFactory.decodeResource(getResources(), R.drawable.starfield),0f,1f);
lcd_tiles = resize_to_screen(BitmapFactory.decodeResource(getResources(), R.drawable.lcd_green),0.05f*LCD_CHAR_COUNT,0f);
calc_lcd();
}
 
public void calc_lcd()
{
lcd_top=getHeight()-lcd_lines.length*lcd_tiles.height();
Paint paint = mPaint;
lcd_img= Bitmap.createBitmap(getWidth(),lcd_lines.length*lcd_tiles.height()+100,false);
Canvas lcd_canvas=new Canvas();
 
lcd_canvas.setDevice(lcd_img);
lcd_canvas.drawColor(Color.WHITE);
int char_width=(int)(lcd_tiles.width()/LCD_CHAR_COUNT);
for ( int lcd_line=0 ; lcd_line < lcd_lines.length ; lcd_line++)
for (int char_pos=0;char_pos<20;char_pos++)
{
int act_char=0;
if (char_pos<lcd_lines[lcd_line].length())
act_char=lcd_lines[lcd_line].charAt(char_pos)-32;
if ((menu_y==lcd_line)&& (char_pos==0))
act_char=30;
lcd_canvas.clipRect(new RectF(char_pos*char_width,lcd_tiles.height()*lcd_line,(char_pos+1)*char_width,lcd_tiles.height()*(lcd_line+1)),Op.REPLACE );
lcd_canvas.drawBitmap(lcd_tiles,(char_pos-act_char)*(char_width),lcd_tiles.height()*(lcd_line) , paint);
 
}
}
public void tick()
{
pos--;
pos%=bg_img.getWidth();
//SystemClock.sleep(50);
}
 
 
@Override protected void onDraw(Canvas canvas) {
tick();
 
Paint paint = mPaint;
paint.setAntiAlias(true);
 
canvas.drawBitmap(bg_img,pos,0 , paint);
 
if ((bg_img.width()+pos)<(getWidth()))
canvas.drawBitmap(bg_img,pos+bg_img.width(),0 , paint);
 
canvas.drawBitmap(lcd_img,0,lcd_top , paint);
paint.setColor(Color.GREEN);
canvas.drawText("LastKeyCode:"+last_key,10,10,paint);
 
invalidate();
}
}