› Foros › Multiplataforma › Desarrollo
-Aquí tenéis el link del proyecto: http://code.google.com/p/eoldroid/
-Necesito vuestro gmail para agregaros (enviadmelo los que queráis uniros por MP)
-Tuto para sincronizar Netbeans con googlecode (subversion), con Eclipse es similar:http://code.google.com/p/ping-pong-manager/wiki/UsoDelSVN
Kitinz escribió:Buenas a todos.
Tengo el movil desde hace un mesecillo o así, estoy terminando la Ingeniería Técnica de Infromática y me interesa (además de aprender Java xD) comenzar a programar algunas cosillas para Android, que puede que saque mi PFC de alguna aplicación medio util que se me ocurra
Acabo de descubrir el hilo, así que imagino que me pasaré a menudo por aquí, a ver si encontramos cosas en español para facilitar el trabajo.
Yo por ahora, voy a instalarme el SDK y luego según he leido, necesito el Eclipse si o si? Por otro lado, no se si preparar el entorno de trabajo en Linux o Windows... Que pensais?
package org.eoldroid;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.TextView;
public class ActivityMain extends Activity implements OnClickListener , OnTouchListener{
private TextView tv;
private TextView ejex;
private TextView ejey;
private ImageView img;
private int i = 0;
private int t = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.uno);
tv.setText("Clica o arrastra!");
tv.setOnClickListener(this);
tv.setOnTouchListener(this);
ejex = (TextView) findViewById(R.id.x);
ejey = (TextView) findViewById(R.id.y);
ejex.setOnClickListener(this);
ejey.setOnClickListener(this);
img = (ImageView) findViewById(R.id.droid);
img.setOnTouchListener(this);
}
public void onClick(View v) {
tv.setText("Has clicado: "+i+++" veces!");
}
public boolean onTouch(View v, MotionEvent event) {
tv.setText("Has arrastrado: "+t+++" pixeles!");
tv.setTextSize(event.getY());
ejex.setText("X: "+event.getX());
ejey.setText("Y: "+event.getY());
return false;
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
>
<TextView android:text=""
android:id="@+id/uno"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
<TextView android:layout_width="wrap_content"
android:text=""
android:layout_height="wrap_content"
android:layout_below="@+id/uno"
android:id="@+id/x">
</TextView>
<TextView android:layout_width="wrap_content"
android:text=""
android:layout_height="wrap_content"
android:layout_below="@+id/x"
android:id="@+id/y">
</TextView>
<ImageView android:layout_width="wrap_content"
android:layout_below="@+id/y"
android:id="@+id/droid"
android:layout_height="wrap_content"
android:src="@drawable/android">
</ImageView>
</RelativeLayout>
package org.eoldroid;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int android=0x7f020000;
public static final int icon=0x7f020001;
}
public static final class id {
public static final int RelativeLayout01=0x7f050000;
public static final int droid=0x7f050004;
public static final int uno=0x7f050001;
public static final int x=0x7f050002;
public static final int y=0x7f050003;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
manugarrote escribió:Eso eso un tuto porque los listeners (y compañía) y yo no nos llevamos bien jeje
package org.eoldroid;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
//Implemento del listener para los clicks
public class MainActivity extends Activity implements OnClickListener {
Button number0, number1, number2, number3, number4, number5,
number6, number7, number8, number9;
Button sum, res, mul, div, coma, igual, borra;
EditText text;
float tempSum, tempRes, tempMul, tempDiv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Recupero la caja de text para poder modificarla
text = (EditText) findViewById(R.id.texto);
//Recupero los botones y les añado el escuchador de clicks
number0 = (Button) findViewById(R.id.number0);
number0.setOnClickListener(this);
number1 = (Button) findViewById(R.id.number1);
number1.setOnClickListener(this);
number2 = (Button) findViewById(R.id.number2);
number2.setOnClickListener(this);
number3 = (Button) findViewById(R.id.number3);
number3.setOnClickListener(this);
number4 = (Button) findViewById(R.id.number4);
number4.setOnClickListener(this);
number5 = (Button) findViewById(R.id.number5);
number5.setOnClickListener(this);
number6 = (Button) findViewById(R.id.number6);
number6.setOnClickListener(this);
number7 = (Button) findViewById(R.id.number7);
number7.setOnClickListener(this);
number8 = (Button) findViewById(R.id.number8);
number8.setOnClickListener(this);
number9 = (Button) findViewById(R.id.number9);
number9.setOnClickListener(this);
sum = (Button) findViewById(R.id.suma);
sum.setOnClickListener(this);
res = (Button) findViewById(R.id.resta);
res.setOnClickListener(this);
mul = (Button) findViewById(R.id.mult);
mul.setOnClickListener(this);
div = (Button) findViewById(R.id.div);
div.setOnClickListener(this);
coma = (Button) findViewById(R.id.coma);
coma.setOnClickListener(this);
igual = (Button) findViewById(R.id.igual);
igual.setOnClickListener(this);
borra = (Button) findViewById(R.id.borra);
borra.setOnClickListener(this);
//Notificación en globo
Toast.makeText(this, R.string.autor,
Toast.LENGTH_LONG).show();
}
//Este metodo sobreescribe al existente en OnClickListener
@Override
public void onClick(View v) {
String num = "";
//Relleno la variable num en caso de que el campo no esté vacio
if(!text.getText().toString().equals(""))
num = text.getText().toString();
//Aqui diferencio donde se ha clicado y actuo según el resultado
switch (v.getId()) {
case R.id.number0:
text.setText(num+"0");
break;
case R.id.number1:
text.setText(num+"1");
break;
case R.id.number2:
text.setText(num+"2");
break;
case R.id.number3:
text.setText(num+"3");
break;
case R.id.number4:
text.setText(num+"4");
break;
case R.id.number5:
text.setText(num+"5");
break;
case R.id.number6:
text.setText(num+"6");
break;
case R.id.number7:
text.setText(num+"7");
break;
case R.id.number8:
text.setText(num+"8");
break;
case R.id.number9:
text.setText(num+"9");
break;
case R.id.suma:
if(!text.getText().toString().equals(""))
tempSum = Float.parseFloat(text.getText().toString());
text.setText("");
break;
case R.id.resta:
if(!text.getText().toString().equals(""))
tempRes = Float.parseFloat(text.getText().toString());
text.setText("");
break;
case R.id.mult:
if(!text.getText().toString().equals(""))
tempMul = Float.parseFloat(text.getText().toString());
text.setText("");
break;
case R.id.div:
if(!text.getText().toString().equals(""))
tempDiv = Float.parseFloat(text.getText().toString());
text.setText("");
break;
case R.id.coma:
if(!text.getText().toString().equals(""))
text.setText(text.getText().toString()+".");
break;
case R.id.igual:
float fin = 0;
float ultimoNum = Float.parseFloat(num);
if(tempSum!=0.0){
fin = tempSum+ultimoNum;
tempRes = tempMul = tempDiv = tempSum;
}else if(tempRes!=0.0){
fin = tempRes-ultimoNum;
tempMul = tempDiv = tempSum = tempRes;
}else if(tempMul!=0.0){
fin = tempMul*ultimoNum;
tempDiv = tempSum = tempRes = tempMul;
}else if(tempDiv!=0.0){
fin = tempDiv/ultimoNum;
tempSum = tempRes = tempMul = tempDiv;
}
text.setText(""+fin);
break;
case R.id.borra:
text.setText("");
tempSum = tempRes = tempMul = tempDiv = 0.0f;
break;
default:
break;
}
}
}
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package org.eoldroid;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class id {
public static final int borra=0x7f05001f;
public static final int coma=0x7f05001c;
public static final int cos=0x7f050007;
public static final int div=0x7f05000e;
public static final int igual=0x7f05001b;
public static final int mult=0x7f050013;
public static final int number0=0x7f05001a;
public static final int number1=0x7f050015;
public static final int number2=0x7f050016;
public static final int number3=0x7f050017;
public static final int number4=0x7f050010;
public static final int number5=0x7f050011;
public static final int number6=0x7f050012;
public static final int number7=0x7f05000b;
public static final int number8=0x7f05000c;
public static final int number9=0x7f05000d;
public static final int raiz=0x7f050009;
public static final int resta=0x7f050018;
public static final int row0=0x7f050002;
public static final int row1=0x7f050005;
public static final int row2=0x7f05000a;
public static final int row3=0x7f05000f;
public static final int row4=0x7f050014;
public static final int row5=0x7f050019;
public static final int row6=0x7f05001e;
public static final int sin=0x7f050006;
public static final int suma=0x7f05001d;
public static final int table1=0x7f050001;
public static final int table2=0x7f050004;
public static final int tan=0x7f050008;
public static final int texto=0x7f050003;
public static final int widget37=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int autor=0x7f040002;
public static final int hello=0x7f040000;
}
}
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, MainActivity!</string>
<string name="app_name">Calcularoid</string>
<string name="autor">By firezenk @ eoldroid</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget37"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TableLayout
android:id="@+id/table1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_x="0px"
android:layout_y="0px"
>
<TableRow
android:id="@+id/row0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/texto"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text=""
android:width="200px"
android:textSize="24sp"
android:inputType="numberDecimal">
</EditText>
</TableRow>
</TableLayout>
<TableLayout
android:id="@+id/table2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_x="0px"
android:layout_y="50px"
>
<TableRow
android:id="@+id/row1"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_width="wrap_content">
<Button
android:id="@+id/sin"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="sn"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/cos"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="cs"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/tan"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="tn"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/raiz"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="√"
android:textSize="24sp"
>
</Button>
</TableRow>
<TableRow
android:id="@+id/row2"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_width="wrap_content">
<Button
android:id="@+id/number7"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="7"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/number8"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="8"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/number9"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="9"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/div"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="/"
android:textSize="24sp"
>
</Button>
</TableRow>
<TableRow
android:id="@+id/row3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/number4"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="4"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/number5"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="5"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/number6"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="6"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/mult"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="*"
android:textSize="24sp"
>
</Button>
</TableRow>
<TableRow
android:id="@+id/row4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/number1"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="1"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/number2"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="2"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/number3"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="3"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/resta"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="-"
android:textSize="24sp"
>
</Button>
</TableRow>
<TableRow
android:id="@+id/row5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/number0"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="0"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/igual"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="="
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/coma"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text=","
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/suma"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="+"
android:textSize="24sp"
>
</Button>
</TableRow>
<TableRow
android:id="@+id/row6"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/borra"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="ce"
android:textSize="24sp"
>
</Button>
</TableRow>
</TableLayout>
</AbsoluteLayout>
dark-kei escribió:Bno... a ver que os parece!
Activity:package org.eoldroid;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
//Implemento del listener para los clicks
public class MainActivity extends Activity implements OnClickListener {
Button number0, number1, number2, number3, number4, number5,
number6, number7, number8, number9;
Button sum, res, mul, div, coma, igual, borra;
EditText text;
float tempSum, tempRes, tempMul, tempDiv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Recupero la caja de text para poder modificarla
text = (EditText) findViewById(R.id.texto);
//Recupero los botones y les añado el escuchador de clicks
number0 = (Button) findViewById(R.id.number0);
number0.setOnClickListener(this);
number1 = (Button) findViewById(R.id.number1);
number1.setOnClickListener(this);
number2 = (Button) findViewById(R.id.number2);
number2.setOnClickListener(this);
number3 = (Button) findViewById(R.id.number3);
number3.setOnClickListener(this);
number4 = (Button) findViewById(R.id.number4);
number4.setOnClickListener(this);
number5 = (Button) findViewById(R.id.number5);
number5.setOnClickListener(this);
number6 = (Button) findViewById(R.id.number6);
number6.setOnClickListener(this);
number7 = (Button) findViewById(R.id.number7);
number7.setOnClickListener(this);
number8 = (Button) findViewById(R.id.number8);
number8.setOnClickListener(this);
number9 = (Button) findViewById(R.id.number9);
number9.setOnClickListener(this);
sum = (Button) findViewById(R.id.suma);
sum.setOnClickListener(this);
res = (Button) findViewById(R.id.resta);
res.setOnClickListener(this);
mul = (Button) findViewById(R.id.mult);
mul.setOnClickListener(this);
div = (Button) findViewById(R.id.div);
div.setOnClickListener(this);
coma = (Button) findViewById(R.id.coma);
coma.setOnClickListener(this);
igual = (Button) findViewById(R.id.igual);
igual.setOnClickListener(this);
borra = (Button) findViewById(R.id.borra);
borra.setOnClickListener(this);
//Notificación en globo
Toast.makeText(this, R.string.autor,
Toast.LENGTH_LONG).show();
}
//Este metodo sobreescribe al existente en OnClickListener
@Override
public void onClick(View v) {
String num = "";
//Relleno la variable num en caso de que el campo no esté vacio
if(!text.getText().toString().equals(""))
num = text.getText().toString();
//Aqui diferencio donde se ha clicado y actuo según el resultado
switch (v.getId()) {
case R.id.number0:
text.setText(num+"0");
break;
case R.id.number1:
text.setText(num+"1");
break;
case R.id.number2:
text.setText(num+"2");
break;
case R.id.number3:
text.setText(num+"3");
break;
case R.id.number4:
text.setText(num+"4");
break;
case R.id.number5:
text.setText(num+"5");
break;
case R.id.number6:
text.setText(num+"6");
break;
case R.id.number7:
text.setText(num+"7");
break;
case R.id.number8:
text.setText(num+"8");
break;
case R.id.number9:
text.setText(num+"9");
break;
case R.id.suma:
if(!text.getText().toString().equals(""))
tempSum = Float.parseFloat(text.getText().toString());
text.setText("");
break;
case R.id.resta:
if(!text.getText().toString().equals(""))
tempRes = Float.parseFloat(text.getText().toString());
text.setText("");
break;
case R.id.mult:
if(!text.getText().toString().equals(""))
tempMul = Float.parseFloat(text.getText().toString());
text.setText("");
break;
case R.id.div:
if(!text.getText().toString().equals(""))
tempDiv = Float.parseFloat(text.getText().toString());
text.setText("");
break;
case R.id.coma:
if(!text.getText().toString().equals(""))
text.setText(text.getText().toString()+".");
break;
case R.id.igual:
float fin = 0;
float ultimoNum = Float.parseFloat(num);
if(tempSum!=0.0){
fin = tempSum+ultimoNum;
tempRes = tempMul = tempDiv = tempSum;
}else if(tempRes!=0.0){
fin = tempRes-ultimoNum;
tempMul = tempDiv = tempSum = tempRes;
}else if(tempMul!=0.0){
fin = tempMul*ultimoNum;
tempDiv = tempSum = tempRes = tempMul;
}else if(tempDiv!=0.0){
fin = tempDiv/ultimoNum;
tempSum = tempRes = tempMul = tempDiv;
}
text.setText(""+fin);
break;
case R.id.borra:
text.setText("");
tempSum = tempRes = tempMul = tempDiv = 0.0f;
break;
default:
break;
}
}
}
R:/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package org.eoldroid;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class id {
public static final int borra=0x7f05001f;
public static final int coma=0x7f05001c;
public static final int cos=0x7f050007;
public static final int div=0x7f05000e;
public static final int igual=0x7f05001b;
public static final int mult=0x7f050013;
public static final int number0=0x7f05001a;
public static final int number1=0x7f050015;
public static final int number2=0x7f050016;
public static final int number3=0x7f050017;
public static final int number4=0x7f050010;
public static final int number5=0x7f050011;
public static final int number6=0x7f050012;
public static final int number7=0x7f05000b;
public static final int number8=0x7f05000c;
public static final int number9=0x7f05000d;
public static final int raiz=0x7f050009;
public static final int resta=0x7f050018;
public static final int row0=0x7f050002;
public static final int row1=0x7f050005;
public static final int row2=0x7f05000a;
public static final int row3=0x7f05000f;
public static final int row4=0x7f050014;
public static final int row5=0x7f050019;
public static final int row6=0x7f05001e;
public static final int sin=0x7f050006;
public static final int suma=0x7f05001d;
public static final int table1=0x7f050001;
public static final int table2=0x7f050004;
public static final int tan=0x7f050008;
public static final int texto=0x7f050003;
public static final int widget37=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int autor=0x7f040002;
public static final int hello=0x7f040000;
}
}
Strings.xml:<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, MainActivity!</string>
<string name="app_name">Calcularoid</string>
<string name="autor">By firezenk @ eoldroid</string>
</resources>
main.xml:<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget37"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TableLayout
android:id="@+id/table1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_x="0px"
android:layout_y="0px"
>
<TableRow
android:id="@+id/row0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/texto"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text=""
android:width="200px"
android:textSize="24sp"
android:inputType="numberDecimal">
</EditText>
</TableRow>
</TableLayout>
<TableLayout
android:id="@+id/table2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_x="0px"
android:layout_y="50px"
>
<TableRow
android:id="@+id/row1"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_width="wrap_content">
<Button
android:id="@+id/sin"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="sn"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/cos"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="cs"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/tan"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="tn"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/raiz"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="√"
android:textSize="24sp"
>
</Button>
</TableRow>
<TableRow
android:id="@+id/row2"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_width="wrap_content">
<Button
android:id="@+id/number7"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="7"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/number8"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="8"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/number9"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="9"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/div"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="/"
android:textSize="24sp"
>
</Button>
</TableRow>
<TableRow
android:id="@+id/row3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/number4"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="4"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/number5"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="5"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/number6"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="6"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/mult"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="*"
android:textSize="24sp"
>
</Button>
</TableRow>
<TableRow
android:id="@+id/row4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/number1"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="1"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/number2"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="2"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/number3"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="3"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/resta"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="-"
android:textSize="24sp"
>
</Button>
</TableRow>
<TableRow
android:id="@+id/row5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/number0"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="0"
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/igual"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="="
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/coma"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text=","
android:textSize="24sp"
>
</Button>
<Button
android:id="@+id/suma"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="+"
android:textSize="24sp"
>
</Button>
</TableRow>
<TableRow
android:id="@+id/row6"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/borra"
android:layout_width="50px"
android:layout_height="wrap_content"
android:text="ce"
android:textSize="24sp"
>
</Button>
</TableRow>
</TableLayout>
</AbsoluteLayout>
El activity esta comentado, pero se admiten sugerencias
Es una calculadora basica.... la funcionalidad aun peta un poco cuando se hace mas de una operación seguida, pero bueno, con mas tiempo pues se hará.
EDIT: Bueno, pues lo e subido compilado aqui:http://www.megaupload.com/?d=QU1QZ8R7 si entrais desde el navegador de android se os instalará sola
EDIT2: Video de la primera versión, versión 2 con mejora grafica considerable en camino
http://www.youtube.com/watch?v=9MxX10tC6Ks
EDIT3: Listo el video y la descarga de la segunda version beta de "Calculadroid" video:http://www.youtube.com/watch?v=53iWObXTMBU La descarga en breve
EDIT4: Tercera beta lista! http://www.youtube.com/watch?v=Ro3R7DbAjSU ahora con menus, popups y función panoramica!
package org.eoldroid.metrovlc.main;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.view.*;
import android.view.GestureDetector.OnGestureListener;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
import android.content.*;
import android.graphics.*;
import android.content.res.*;
public class MainActivity extends Activity implements OnGestureListener
{
private final int DIALOG_ABOUT = 0;
private final int DIALOG_EXIT = 1;
private int scrollX = 0;
private int scrollY = 0;
MyView main;
Bitmap bmp;
Bitmap adapt;
Resources res;
Paint paint;
GestureDetector gestureScanner;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
gestureScanner = new GestureDetector(this);
paint = new Paint();
res = getResources();
bmp = BitmapFactory.decodeResource(res, R.drawable.pic);
adapt = Bitmap.createBitmap(bmp);
main = new MyView(this);
setContentView(main,new ViewGroup.LayoutParams(800, 600));
}
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, R.drawable.user, 0, "About").setIcon(R.drawable.user);
menu.add(0, R.drawable.exit, 1, "Exit").setIcon(R.drawable.exit);
return true;
}
/* Handles item selections */
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.drawable.user:
showDialog(DIALOG_ABOUT);
return true;
case R.drawable.exit:
showDialog(DIALOG_EXIT);
return true;
}
return false;
}
protected Dialog onCreateDialog(int id) {
Dialog dialog = null;
switch(id) {
case DIALOG_ABOUT:
dialog = new Dialog(this);
dialog.setContentView(R.xml.custom_dilog);
dialog.setTitle("Metro VLC v.0.1");
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Creado por:\nfirezenk @ gmail\nEolDroid Team");
ImageButton bok = (ImageButton) dialog.findViewById(R.id.image);
bok.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
dismissDialog(DIALOG_ABOUT);
}
});
return dialog;
case DIALOG_EXIT:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("¿Seguro que deseas salir?")
.setCancelable(false)
.setPositiveButton("Si", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MainActivity.this.finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
return builder.create();
}
return dialog;
}
@Override
public boolean onTouchEvent(MotionEvent me)
{
return gestureScanner.onTouchEvent(me);
}
class MyView extends View
{
public MyView(Context context)
{
super(context);
}
@Override
protected void onDraw(Canvas canvas)
{
canvas.drawBitmap(adapt, 0, 0, paint);
}
public void handleScroll(float distX, float distY)
{
// X-Axis ////////////////////////////////
if(distX > 6.0)
{
if(scrollX < 460)
{
scrollX += 15;
}
}
else if(distX < -6.0)
{
if(scrollX >= 15)
{
scrollX -= 15;
}
}
////////////////////////////////////////////
// Y-AXIS //////////////////////////////////
if(distY > 6.0)
{
if(scrollY < 100)
{
scrollY += 15;
}
}
else if(distY < -6.0)
{
if(scrollY >= 15)
{
scrollY -= 15;
}
}
////////////////////////////////////////////
if((scrollX <= 480) && (scrollY <= 120))
{
adapt = Bitmap.createBitmap(bmp, scrollX, scrollY, 320, 480);
invalidate();
}
}
}
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return true;
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
return true;
}
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
main.handleScroll(distanceX,distanceY);
return true;
}
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return true;
}
}
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package desarrolladores.android.com.tutorial.juego1;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int fondo=0x7f020000;
public static final int icon=0x7f020001;
public static final int nube=0x7f020002;
}
public static final class id {
public static final int VistaJuego1=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
package desarrolladores.android.com.tutorial.juego1;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
public class TutorialJuego1 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
}
}
package desarrolladores.android.com.tutorial.juego1;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.View;
public class VistaJuego1 extends View {
// Cuantos píxels nos moveremos a cualquier dirección cuando se pulse cada tecla
private static int PASO_MOVIMIENTO = 5;
// Dimensiones de la pantalla del dispositivo
private int anchoPantalla, altoPantalla;
// Posición de la imagen que moveremos
private int posX, posY;
// Imagen que dibujaremos en la pantalla
private Drawable nube;
// Dimensiones de la imagen que dibujaremos
private int anchoNube, altoNube;
// Constructor de la clase
public VistaJuego1(Context context, AttributeSet attrs) {
super(context, attrs);
// Obtenemos la referencia a la imagen que moveremos en pantalla
nube = context.getResources().getDrawable(R.drawable.nube);
anchoNube = nube.getIntrinsicWidth();
altoNube = nube.getIntrinsicHeight();
// Para asegurarnos que capturaremos las pulsaciones de teclas
setFocusable(true);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
// Una vez que conocemos nuestro ancho y alto.
anchoPantalla = w;
altoPantalla = h;
posX = (anchoPantalla / 2)-(anchoNube/2);
posY = (altoPantalla / 2)-(altoNube/2);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
nube.setBounds(posX, posY, posX+anchoNube, posY+altoNube);
nube.draw(canvas);
invalidate(posX-PASO_MOVIMIENTO, posY-PASO_MOVIMIENTO, posX+anchoNube+PASO_MOVIMIENTO, posY+altoNube+PASO_MOVIMIENTO);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Suponemos que vamos a procesar la pulsación
boolean procesada = true;
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:
posY-=PASO_MOVIMIENTO;
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
posY+=PASO_MOVIMIENTO;
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
posX-=PASO_MOVIMIENTO;
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
posX+=PASO_MOVIMIENTO;
break;
default:
// Si hemos llegado aquí, significa que no hay pulsación que nos interese
procesada = false;
break;
}
// Si nos salimos de la pantalla, corregimos la posición
// para que no aparezca fuera.
if(posY<0)
posY=0;
if(posX<0)
posX=0;
if(posY>altoPantalla-altoNube)
posY=altoPantalla-altoNube;
if(posX>anchoPantalla-anchoNube)
posX=anchoPantalla-anchoNube;
return procesada;
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<desarrolladores.android.com.tutorial.juego1.VistaJuego1
android:id="@+id/VistaJuego1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/fondo"
/>
</LinearLayout>
dark-kei escribió:Bueno pues esta tarde tal como prometí e empezado con los mini videotutos...
Tengo 3 y espero poder tenerlos colgados pronto (estan en 720p pa que se vean bien las letras.. y pesan mil)
Asiq paciencia, los ire colgando aqui: http://code.google.com/p/eoldroid/wiki/VideoTutoriales confome los valla teniendo subidos
package android.contador;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class Contador extends Activity implements OnClickListener {
EditText texto=(EditText)findViewById(R.id.texto);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button contador = (Button)findViewById(R.id.cuenta);
contador.setOnClickListener(this);
}
public void onClick (View v){
String num = "";
if(!texto.getText().toString().equals("")){
num = texto.getText().toString();
}
switch(v.getId()){
case R.id.cuenta:
texto.setText(num + "1");
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:id="@+id/cuenta"
android:layout_width="200px"
android:layout_height="50px"
android:text="Contar"
android:textSize="24sp"
/>
<TableRow
android:id="@+id/row0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/texto"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text=""
android:width="200px"
android:textSize="24sp"
android:inputType="numberDecimal">
</EditText>
</TableRow>
</LinearLayout>
d4rkb1t escribió:Supongo que ya os habreis dado cuenta, pero supongo que me tocará a dejar el grupo de proyectos. Os describo mi agenda de los proximos meses:
De aqui al dia 10 de septiembre: estudiar todo lo que no he estudiado durante el verano por tocarme los cojones, para recuperar 4 asignaturas, entre las cuales, la mas dificil de la carrera.
Del 10 de septiembre al dia 23: vacaciones REALES, sin preocupaciones, perdido por ahi, aunque sea con una balsa en mitad del mar.
Del 23 de septiembre hasta verano: por obligación me tocará seguir esta rutina,
* 9-11:30 => Gim
* 11:30 - 13 => Estudiar o hacer practicas de la uni que este año tendré por un tubo
* 13 - 14:30 => Hacer la comida, comer, relajarme media horita y....
* 14:30 - 21 => Uni ...
* 21 - 23 => tiempo personal
Eso sin contar si al final hago el proyecto este año o que... si lo hago me puedo ir olvidando de dormir 8 horas u.u'...
Lo siento pero me será imposible ayudar T_T...
dark-kei escribió:Señores, alguno va a la MWC? Lo digo para ir con algunos eoliano.
zheo escribió:dark-kei escribió:Señores, alguno va a la MWC? Lo digo para ir con algunos eoliano.
¿Qué es eso?
Lupi escribió:Por lo que he visto, para esta aplicacion se programa en Java. ¿Me equivoco?
Lupi escribió:¿Puedo instalar mis propias aplicaciones y probarlas?¿O tengo que esperar a subirlas al marketplace o lo que sea, y que me las aprueben?
Lupi escribió:¿Hay alguna librería especial para crear GUIs?, ¿o funciona con la de java Swing? (es la que he tocado yo)
Lupi escribió:Y ya como caso extremo, ¿Bases de Datos en Android?
Sepho escribió:Yo he seguido los pasos y he compilado un hello world, pero se me lanza el emulador de android y en la pantalla pone ANDROID en lugar de Hello, World! y si pulso las teclas no pasa nada (sé que no debería pasar nada, pero supuse que si marco números, al menos deberían mostrarse en pantalla). He probado tanto con el 7 como con el 2.. ¿Alguna idea?
rYlEi escribió:Sepho escribió:Yo he seguido los pasos y he compilado un hello world, pero se me lanza el emulador de android y en la pantalla pone ANDROID en lugar de Hello, World! y si pulso las teclas no pasa nada (sé que no debería pasar nada, pero supuse que si marco números, al menos deberían mostrarse en pantalla). He probado tanto con el 7 como con el 2.. ¿Alguna idea?
Puede que sea una pregunta tonta pero... ¿Es alguna de estas la pantalla que ves?
Por que si es asi quiere decir que el emulador aun esta arrancando...
Si no es de eso pon el codigo (tanto del Java como del XML) a ver si podemos hacer algo.
Un saludo.