tag:blogger.com,1999:blog-90397768652172368952024-03-05T02:35:06.293-08:00Programación y TecnologíaTópicos de desarrollo de Software y tecnologíaAnonymoushttp://www.blogger.com/profile/08142453206346121719noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-9039776865217236895.post-1496636337502501602012-11-03T16:14:00.002-07:002012-11-03T16:15:43.279-07:00Capturar la Pantalla Windows (ScreenShot) en C#Un pequeño tutorial o Tip si podríamos decirlo así que consiste en captura la pantalla de Windows y guardarla en un archivo de imagen.<br />
<br />
En este caso yo he creado un proyecto en WindowsForms, llamado Captura, añadí un Button y un SaveFileDialog para guarda el archivo.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVvnfxumpl8kMTirVbDU3S8yrMfX9-bAq94z19H0Cj_uO7Lr-907mJDWgtvk00KTANl1qiM0KMff73f8LbcyLUsWvZrZM41RrTupY6A9k7kqOAPqkjJ1wKvPx0ar1vuG0HB0hZl-DsZiM/s1600/imag3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVvnfxumpl8kMTirVbDU3S8yrMfX9-bAq94z19H0Cj_uO7Lr-907mJDWgtvk00KTANl1qiM0KMff73f8LbcyLUsWvZrZM41RrTupY6A9k7kqOAPqkjJ1wKvPx0ar1vuG0HB0hZl-DsZiM/s1600/imag3.JPG" /></a></div>
<br />
<br />
<a name='more'></a><br /><br />
El código se desarrollara en el evento Onclick del Button1, como se muestra a continuación:<br />
<br />
<pre class="brush: csharp">private void button1_Click(object sender, EventArgs e)
{
Bitmap BmpScreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height,
System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics ScreenShot = Graphics.FromImage(BmpScreen);
ScreenShot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,
Screen.PrimaryScreen.Bounds.Y, 0, 0,
Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
string fileNom = String.Empty;
saveFileDialog1.Filter = "Excel files (*.png)|*.png";
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
fileNom = saveFileDialog1.FileName;
BmpScreen.Save(fileNom, System.Drawing.Imaging.ImageFormat.Png);
}
}
</pre>
<br />
Al realizar en WindowsForms Por defecto se añade la referencia de <span style="font-family: Courier New, Courier, monospace;">System.Drawing; </span><span style="font-family: inherit;">por lo que puedo crear los Objetos</span><span style="font-family: Courier New, Courier, monospace;"> Bitmap </span><span style="font-family: inherit;">y</span><span style="font-family: Courier New, Courier, monospace;"> Graphics </span><span style="font-family: inherit;">libremente -para tomarlo en cuenta-.</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: inherit;">Analizando el </span>código<span style="font-family: inherit;">, Creamos el objeto bmpScreen del tipo Bitmap con los </span>parámetros<span style="font-family: inherit;"> establecidos, los primeros define la </span>dimensión<span style="font-family: inherit;"> y el siguiente el formato de la imagen en </span>cuestión<span style="font-family: inherit;"> de gama colores como de 8 16 o 32 bits si desea puede cambiar a los </span>diferentes<span style="font-family: inherit;"> </span>parámetros <span style="font-family: inherit;"> que sugiere el </span>intellisense<br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">ScreenShot del tipo Graphics, permite obtener la pantalla y copiarla al bmpScreen, el archivo</span><span style="font-family: inherit;"> se guarda en png, usted puede elegir otro formato de imagen.</span><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: inherit;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh22NEYIMaQjvOG-LGg5Eu9sbFhdBAo0cZXAEIFpFYNKRUqe9kdQ06oq7Q-XwGTmBopcJytZ7Yteg_XHthpvn2PFoW4kEUT4NF9rwdN9eu3oMzhVfRYAT6qnIswM07O3zu4h82ZUjnnLM4/s1600/Captura345.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="321" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh22NEYIMaQjvOG-LGg5Eu9sbFhdBAo0cZXAEIFpFYNKRUqe9kdQ06oq7Q-XwGTmBopcJytZ7Yteg_XHthpvn2PFoW4kEUT4NF9rwdN9eu3oMzhVfRYAT6qnIswM07O3zu4h82ZUjnnLM4/s400/Captura345.JPG" width="400" /></a></div>
<span style="font-family: inherit;"><br /></span>
Una ves elegida la ruta y el nombre del archivo podrá verificar que se realiza la captura de la pantalla.Anonymoushttp://www.blogger.com/profile/08142453206346121719noreply@blogger.com2tag:blogger.com,1999:blog-9039776865217236895.post-67285181565706553072012-11-03T14:16:00.002-07:002012-11-03T14:17:26.581-07:00Primera aplicación en Android, Hola Mundo!Crear una aplicación sencilla en Android a manera de introducción con Eclipse.<br />
<br />
La Aplicación se llama HelloWorld que convencionalmente es usada para iniciar el aprendizaje de un lenguaje de programación, en este caso consistirá en que el usuario introduzca su nombre y el programa le responda después de hacer clic <i>Hola</i> <i>nombre</i>!<br />
<br />
Creamos un nuevo Proyecto en Eclipse en la barra de herramientas: <b>File->New->Other Project</b> despues seleccionamos Android Application Project como se ve en la siguiente Figura.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPuLi12JJU269M9MkR8i5BmMS0vrcD0ibtqLX6a4Fh9JTvZrZ0xlSoZMXu9OBoC6y3PQJcWYCWAX_pJFaGk1KNDp1Lul6ICo0rdRYlmSg_LwveTD-FKfp3DekxK4U6t0kXGkocbLP1nbs/s1600/App1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="307" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPuLi12JJU269M9MkR8i5BmMS0vrcD0ibtqLX6a4Fh9JTvZrZ0xlSoZMXu9OBoC6y3PQJcWYCWAX_pJFaGk1KNDp1Lul6ICo0rdRYlmSg_LwveTD-FKfp3DekxK4U6t0kXGkocbLP1nbs/s320/App1.JPG" width="320" /></a></div>
<br />
A continuación escribimos el nombre de la aplicación que puede ser diferente a la del proyecto, aquí un punto importante es donde definimos la versión del SDK para la cual vamos a programar - suponiendo que las tienes descargadas-, en este caso he seleccionado Android 2.3.3 y el requerimiento mínimo de Android 2.2<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8Az_fMXDPlWwMWFw6PbZqJrXpFisSTGjeiUQcNff_EnGZQEUKfmYLh5Q6iP_1Ju7fM5cBq3ahCU2_-_vcndmY3uoCzhS-clxofIO6T6YMZOpSiAy6wQhpylZ9zBj1I18ZfVI-ru9SDNQ/s1600/App2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="363" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8Az_fMXDPlWwMWFw6PbZqJrXpFisSTGjeiUQcNff_EnGZQEUKfmYLh5Q6iP_1Ju7fM5cBq3ahCU2_-_vcndmY3uoCzhS-clxofIO6T6YMZOpSiAy6wQhpylZ9zBj1I18ZfVI-ru9SDNQ/s400/App2.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<a name='more'></a><br /><br />
<div class="separator" style="clear: both; text-align: left;">
Después configuramos el icono de la aplicación que podemos dejarla por defecto..</div>
<div class="separator" style="clear: both; text-align: left;">
y a continuación escribimos el Nombre la Actividad principal ¿Pero y qué es una actividad? Las aplicaciones de Android funcionan principalmente por actividades que es interfaz gráfica de interacción con el usuario y la aplicación, y su respectiva clase en Java.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Después de crear el proyecto se forma la estructura, con las siguientes carpetas:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_eNeAgjy6MC_4kkPAW9cyliwpEr7U9ZULyOebr3MkbbyJQWl2WXF8wI-xoye7owuf3MnvmRMN_a51J6f47HCO-n4iQmIELWy_W1Y_y7MeF654RkUfezxy-mVEvU3acVAoYbYUIgvi3QY/s1600/android+3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_eNeAgjy6MC_4kkPAW9cyliwpEr7U9ZULyOebr3MkbbyJQWl2WXF8wI-xoye7owuf3MnvmRMN_a51J6f47HCO-n4iQmIELWy_W1Y_y7MeF654RkUfezxy-mVEvU3acVAoYbYUIgvi3QY/s1600/android+3.JPG" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Carpetas</div>
<br />
<ul>
<li><b>src/</b> Contiene los archivos de código java del proyecto, como de las actividades, y clases auxiliares.</li>
<li><b>gen/</b> Contiene los r.java archivos que son las compilaciones generadas referenciadas a todo el proyecto, no tendrían que ser modificadas.</li>
<li><b>Android 2.3.3/</b> Libreria de Android</li>
<li><b>assets/</b> Contiene todos los recursos usados por la aplicación como HTML, archivos txt, bases de datos, etc </li>
<li><b>bin/</b> Contiene los archivos construidos por el ADT, archivos como el *.apk (Android Package) que son los binarios de la Aplicacion Android que contiene todas las cosas indispensable para ejecutare en el entorno.</li>
<li><b>res/ </b>Contiene todos los ficheros de recursos necesarios para el proyecto: imágenes, vídeos, cadenas de texto, etc</li>
</ul>
<span style="line-height: 21px;">Programando..</span><br />
<span style="line-height: 21px;"><br /></span>
<span style="line-height: 21px;">Se diseña la actividad principal que es la primera pantalla de nuestra aplicación, consiste en añadir los controles necesarios en este caso un <i>TextView, Button</i> y<i> EditText</i> todo esto en haciendo clic en Graphical Layout para el diseñador visual.</span><br />
<span style="line-height: 21px;"><br /></span>
<span style="line-height: 21px;">Se arrastran los controles al formulario.</span><br />
<span style="line-height: 21px;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk06mWp_H_Scrkh_q0fOq_DN6LSNhGDRZNNuceEay_xgwyyqX6_iOujxeSmW-X9KvNpnaO934KvaAQ1ihYXK0lISOkiVPy0pTb4zxAN2Be-2KtdDFuHX36RVb3A9rNMLSpTxqxkL6RqCo/s1600/cap3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk06mWp_H_Scrkh_q0fOq_DN6LSNhGDRZNNuceEay_xgwyyqX6_iOujxeSmW-X9KvNpnaO934KvaAQ1ihYXK0lISOkiVPy0pTb4zxAN2Be-2KtdDFuHX36RVb3A9rNMLSpTxqxkL6RqCo/s1600/cap3.JPG" /></a></div>
<span style="line-height: 21px;"><br /></span>
<span style="line-height: 21px;">El código XML que es el diseño reflejado en xml donde se especifican los atributos de los controles como vemos a continuación:</span><br />
<span style="line-height: 21px;"><i><br /></i></span>
<span style="line-height: 21px;"><i>Nota en este caso no cambiare los ID de los controles como convencionalmente - solo por variar XD- </i></span><br />
<br />
<pre class="brush: xml"><relativelayout android:layout_height="match_parent" android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
<textview android:id="@+id/textView2" android:layout_centerhorizontal="true" android:layout_centervertical="true" android:layout_height="wrap_content" android:layout_width="wrap_content" android:padding="@dimen/padding_medium" android:text="@string/hello_world" tools:context=".MainActivity">
<textview android:id="@+id/textView1" android:layout_alignleft="@+id/textView2" android:layout_alignparenttop="true" android:layout_height="wrap_content" android:layout_margintop="40dp" android:layout_width="wrap_content" android:text="TextView">
<edittext android:ems="10" android:id="@+id/editText1" android:layout_below="@+id/textView1" android:layout_centerhorizontal="true" android:layout_height="wrap_content" android:layout_margintop="42dp" android:layout_width="wrap_content">
<button android:id="@+id/button1" android:layout_below="@+id/editText1" android:layout_centerhorizontal="true" android:layout_height="wrap_content" android:layout_margintop="16dp" android:layout_width="wrap_content" android:text="Button">
</button></edittext></textview></textview></relativelayout>
</pre>
<br />
<div style="line-height: 21px;">
Cada etiqueta hace referencia a un elemento en este caso control del la actividad, dentro los atributos destacamos:</div>
<div style="line-height: 21px;">
<br /></div>
<div>
<i style="line-height: 21px;"> android:id</i><span style="line-height: 21px;"> ID del control que lo identifica por lo general tiene un prefijo <i>@+id/ </i> que es útil al momento de obtener la referencia en la lógica de programación (*.java), el control</span><span style="line-height: 21px;"><span style="font-family: inherit;"> <i>TextView</i> por ejemplo el atributo</span><span style="font-family: Arial, sans-serif; font-size: 14px;"> </span></span><span style="line-height: 21px;"><i>android:text="TextView"</i> contiene el valor de texto que se va mostrar en el control.</span></div>
<div>
<span style="line-height: 21px;">Podemos ver atributos comunes como layout que definen las posición y otros como las dimensiones del control, se puede experimentar en el diseñador visual cambiando sus valores y los efectos que tienen.</span><br />
<span style="line-height: 21px;">En esta parte del diseño no cambie ninguna de sus características ni nombres de los controles, los deje por defecto.</span></div>
<div>
<span style="line-height: 21px;"><br /></span></div>
<div>
<span style="line-height: 21px;">La aplicación estará formara por dos actividades la primera donde introduciremos nuestro nombre y al hacer clic no muestre la segunda actividad con </span><i style="line-height: 21px;">TextView</i><span style="line-height: 21px;"> que se lea HOLA </span><i style="line-height: 21px;">Nombre.</i></div>
<div>
<i style="line-height: 21px;"><br /></i></div>
<div>
Para añadir un asegunda actividad en la barra de herramientas <i>File/New/Other </i>y en Android seleccionamos Android Activity </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh6FuQuatrxpAN8aY-1rJ3foYh6mWlS8vw_wSr3BzZf5ni9U2dQnf4akmG6swvTV3YmhLATNC4QcJGS9xI_pDHlMFVeFid9GcHK8ZtpYtzQ8PrgYDoTjTVe3Q_ATF5E_-m1NmQdBN50FI/s1600/app3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh6FuQuatrxpAN8aY-1rJ3foYh6mWlS8vw_wSr3BzZf5ni9U2dQnf4akmG6swvTV3YmhLATNC4QcJGS9xI_pDHlMFVeFid9GcHK8ZtpYtzQ8PrgYDoTjTVe3Q_ATF5E_-m1NmQdBN50FI/s400/app3.JPG" width="400" /></a></div>
<div>
<i><br /></i></div>
<div>
</div>
<div>
<span style="line-height: 21px;">Verificamos que se añada en el proyecto <i>HelloWorld </i>y Escribimos el nombre de la Actividad que en este caso es <b>Mensaje</b>, se puede verificar que dentro de la estructura del proyecto se han añadido tanto al actividad y su respectivo archivo en java.</span></div>
<div>
<br /></div>
<div>
<span style="line-height: 21px;">Entrando ya la parte de la </span><span style="line-height: 21px;">programación,</span><span style="line-height: 21px;"> al crear el </span><span style="line-height: 21px;">proyecto</span><span style="line-height: 21px;"> por defecto se crea un archivo java que corresponde a la actividad principal en este caso se llama </span><br />
<i style="line-height: 21px;">MainActivity.java </i></div>
<div>
<span style="line-height: 21px;"><br /></span></div>
<div>
<span style="line-height: 21px;">que inicialmente se muestra asi</span></div>
<div>
<pre class="brush: java">package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//codigo aosciado al evento OnCreate
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
</pre>
<div>
<div>
<br /></div>
</div>
<div>
<span style="line-height: 21px;"><br /></span></div>
<div>
<span style="line-height: 21px;">Se tiene dos eventos:</span></div>
<div>
<span style="line-height: 21px;"> <i>OncreateOptionsMenu</i>: que especifica las opciones del menú en una actividad, en este método puede agregar menú definido en XML pero no sera útil por ahora, así que lo eliminaremos del código.</span></div>
<div>
<span style="line-height: 21px;"><i>OnCreate</i>: Se ejecuta cuando se crea la actividad principal este método servirá para escribir el código.</span></div>
<div>
<span style="line-height: 21px;"><br /></span></div>
<div>
<span style="line-height: 21px;">El Método </span><i style="line-height: 21px;">Oncreate</i><span style="line-height: 21px;"> con el código que explicaremos paso a paso. -solo se muestra el recorte del método-</span></div>
<div>
<br />
<pre class="brush: java">@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // referencia a la actividad
//Localizar los controles
//Obtenemos referencia del EditText en la Actividad
final EditText txtNombre = (EditText)findViewById(R.id.editText1);
//Obtenemos referencia del Button en la Actividad y declaramos su evento Onclick
final Button btnHola = (Button)findViewById(R.id.button1);
btnHola.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//Creamos el Intent para asociar las clases de las Actividades
Intent intent = new Intent(MainActivity.this, Mensaje.class);
//Creamos el Bundle para mapear el texto que aloja el control
Bundle b = new Bundle();
b.putString("NOMBRE", txtNombre.getText().toString());
//Insertamos el Bundle al intent para que este disponible la Activida Mensaje
intent.putExtras(b);
//Iniciamos la Actividad Mensaje por medio del Intent
startActivity(intent);
}
});
</pre>
<span style="line-height: 21px;">En el código anterior, no creo que haya problema para entender la obtención de los controles de la vista <i>findViewById</i></span></div>
<div>
<span style="line-height: 21px;">En la declaración del evento del button1 </span><i style="line-height: 21px;">OnClick </i><span style="line-height: 21px;">donde se ejecutara la acción principal pero primero debemos entender que es:</span><br />
<span style="line-height: 21px;"><br /></span>
<span style="line-height: 21px;"><i>Intent:</i> que permite la enlazar los componentes de la aplicación en este caso entre las actividades.</span><br />
<span style="line-height: 21px;"><i>Bundle:</i> Mapea a cadenas diferentes tipos en este caso, del control EditText.</span><br />
<span style="line-height: 21px;"><br /></span><span style="line-height: 21px;">Añadimos el Bundle al Intent esto para que este disponible en la Actividad<i> Mensaje, </i>y se arranca la segunda Actividad.</span><br />
<span style="line-height: 21px;">El diseño de visual de la segunda actividad solo debe añadirse un <i>TextView</i> para que se pueda mostrar el mensaje.</span><br />
<span style="line-height: 21px;"><br /></span>
<span style="line-height: 21px;">El código java de la segunda Actividad </span><i style="line-height: 21px;">Mensaje</i><br />
<span style="line-height: 21px;"><br /></span>
<br />
<pre class="brush: java">package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
import android.widget.TextView;
public class Mensaje extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mensaje);
// referencia al control de la vista
TextView txtMensaje = (TextView)findViewById(R.id.textView1);
// Mapeo de la cadena por medio del Intent
Bundle bundle = getIntent().getExtras();
// Establece la cadena en el control
txtMensaje.setText("Hola " + bundle.getString("NOMBRE"));
}
}
</pre>
<span style="line-height: 21px;"><br /></span>
<span style="line-height: 21px;">Se observa que el código se declara en el evento Oncreate obtenemos la referencia al </span><i style="line-height: 21px;">TextView</i><span style="line-height: 21px;"> de la vista obtenemos el Bunble por medio del Intent, y seteamos el valor en el </span><i style="line-height: 21px;">textView, </i><span style="line-height: 21px;">esto permitirá que al mostrarse la segunda actividad se lea </span><i style="line-height: 21px;">Hola Nombre</i><span style="line-height: 21px;"> </span><br />
<div>
<span style="line-height: 21px;"><br /></span>
<span style="line-height: 21px;">ok ejecutamos la aplicación haciendo click en Runde la barra de herramientas</span><br />
<span style="line-height: 21px;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF7bodXCEH7JjJqskGIdZtjhADs13KnNfJKcTLr76dAS1WC7bg2ZSObvy9d5P82_hdAAxxWNYaRxS-5cO87UyRmvbdB289dAXJGZQKBkN5ouQ3yKJm_OUJprQov70_8HQzTZ-hNkktv9w/s1600/barra1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF7bodXCEH7JjJqskGIdZtjhADs13KnNfJKcTLr76dAS1WC7bg2ZSObvy9d5P82_hdAAxxWNYaRxS-5cO87UyRmvbdB289dAXJGZQKBkN5ouQ3yKJm_OUJprQov70_8HQzTZ-hNkktv9w/s1600/barra1.JPG" /></a></div>
<span style="line-height: 21px;">a continuación se ejecuta el emulador y se espera hasta que se ejecute la aplicación y tendremos una pantalla como esta donde escribimos un nombre en este caso escribí </span><i style="line-height: 21px;">android</i><br />
<span style="line-height: 21px;"><i><br /></i></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhreDGGO4a4A0kZMqBKVWm6HgAVK2_UhgHVFvu14-4zfYRmL7xrbAh0bYF7bDRhYz0BPcY28k-KIJMcTGoXDxpB81eBsZzfbvmsUSsJAy6SGoutkt22FUq4jghyKfuYsacqAqIAtTHaKzw/s1600/pantalla1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="325" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhreDGGO4a4A0kZMqBKVWm6HgAVK2_UhgHVFvu14-4zfYRmL7xrbAh0bYF7bDRhYz0BPcY28k-KIJMcTGoXDxpB81eBsZzfbvmsUSsJAy6SGoutkt22FUq4jghyKfuYsacqAqIAtTHaKzw/s400/pantalla1.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
después de hacer clic en el <i>Button</i> nos muestra la segunda actividad <i>Mensaje </i>como vemos a continuación:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4H9Dy1kuHpwYxeS4OXxZFGx0MU29Wm3BXKBUn4KxiEXQH3I8SsoBRR5xEcj3GSC_5Pz4Vs5J24fl_YEMw8f3YywTV3gX0AxhyTlYQeQFGKZqDCA_R2aZRSVPPpfeInJcEXGRYXni13KA/s1600/pan3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4H9Dy1kuHpwYxeS4OXxZFGx0MU29Wm3BXKBUn4KxiEXQH3I8SsoBRR5xEcj3GSC_5Pz4Vs5J24fl_YEMw8f3YywTV3gX0AxhyTlYQeQFGKZqDCA_R2aZRSVPPpfeInJcEXGRYXni13KA/s400/pan3.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<span style="line-height: 21px;">Mas adelante veremos otros ejemplos.</span><br />
<span style="line-height: 21px;"><br /></span></div>
<div style="line-height: 21px;">
</div>
</div>
<div style="line-height: 21px;">
<br /></div>
<br />
<span style="line-height: 21px;"><br /></span></div>
Anonymoushttp://www.blogger.com/profile/08142453206346121719noreply@blogger.com0tag:blogger.com,1999:blog-9039776865217236895.post-20081702971110362072012-08-14T09:52:00.000-07:002012-08-14T09:57:49.779-07:00Instalación IDE de Eclipse para Android en Windows -básico paso a paso-<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0ObOcP_P8IYv-0x-bOF2N2uBvYOsokKaUEUOy-bSUghLXMnAwYH0dJFH6W6ZjLiRBe49AHbAESiT9AD1-e1cZv4cNoP4MNsrcDUibkUbBdzmpp4ZNAFH7v9z2A9QZveriPxkyRqCHsR4/s1600/descarga.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0ObOcP_P8IYv-0x-bOF2N2uBvYOsokKaUEUOy-bSUghLXMnAwYH0dJFH6W6ZjLiRBe49AHbAESiT9AD1-e1cZv4cNoP4MNsrcDUibkUbBdzmpp4ZNAFH7v9z2A9QZveriPxkyRqCHsR4/s1600/descarga.jpg" /></a></div>
Android es un sistema operativo para teléfonos móviles con kernel Linux, que últimamente ha tomado mucha relevancia, actualmente lidera el mercado con una cuota de más del 35%. <br />
El sistema permite programar aplicaciones en una variación de Java llamada Dalvik. Que proporciona las interfaces necesarias para desarrollar aplicaciones que accedan a las funciones del teléfono, como llamadas, multimedia, GPS etc.<br />
En esta oportunidad vamos a explicar paso a paso como instalar el entorno de desarrollo para Android, en Windows.<br />
No he programado mucho en java, casi nada, y ni me ha interesado menos desde que empecé en c#, para aquellos que estén interesados en programar Android como yo, tendremos que lidiar con ello, cosa que no me parece complicada, ya que C# tiene un 70% de coincidencias en sintaxis.<br />
Así que a diferencia de otros tutoriales donde la explicación supone que las personas tienen conocimiento en java, aquí vamos a intentar explicar paso a paso su instalación.<br />
En síntesis la instalación consta de 4 pasos<br />
<ol>
<li>Instalación del JDK de java (si no eres desarrollador de java)</li>
<li>Instalación de Eclipse.</li>
<li>Instalación del Plugin de Android (ADT) para Eclipse.</li>
<li>Instalación SDK Android.</li>
<li>Configuración del AVD Android virtual Device.</li>
</ol>
<div>
<div>
<br />
<a name='more'></a><br />
<br />
Es aconsejable que se instale en ese orden, para probarlas correctamente paso a paso, de no ser así no se preocupe se integran al final.</div>
<div>
<br /></div>
<div>
<b>1.<span class="Apple-tab-span" style="white-space: pre;"> </span>Instalación de JDK </b></div>
<div>
Si usted no programo nunca en java en entonces es muy probable que no tenga el JDK de java que significa Java Development Kit , que es el kit esencial para compilar y ejecutar programas escritos en java.</div>
<div>
Lo puede descargar de aquí <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">http://www.oracle.com/technetwork/java/javase/downloads/index.html</a></div>
<div>
<br /></div>
<div>
Existen varias opciones, en este caso nos interesa solo el JDK java Plataform (jdk)</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghJw7-5b2CM4s0jxaQieXyMXCFtlJX8kcG5a07miwG7hY7wvCIhbjXFQ6kBsOgAt-HrG-b6FPiuXl0Lq-a2H1bvftoMdYkUYuZ03Y5xlOwgpAQWTNjgmwqCAx9JzVbbf5ByktxAmcewIc/s1600/java1.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="425" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghJw7-5b2CM4s0jxaQieXyMXCFtlJX8kcG5a07miwG7hY7wvCIhbjXFQ6kBsOgAt-HrG-b6FPiuXl0Lq-a2H1bvftoMdYkUYuZ03Y5xlOwgpAQWTNjgmwqCAx9JzVbbf5ByktxAmcewIc/s640/java1.JPG" width="640" /></a></div>
<div>
<br /></div>
<br />
<div>
<br /></div>
<br />
<div>
Nos lleva este sitio donde hay la posibilidad (en la parte inferior de la página) de bajarse el JDK con ejemplos y demos si le interesa puede descargarse ese producto en mi caso solo me descargue el JDK. Busque su plataforma de sistema operativo, me refiero a Windows x86 o x64 ya que este tutorial va dirigido a usuarios Windows.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrezCSiTGSCQqZansPdGTgU1lhgsbYpvmEeITl9Q0RZl8T1jhqYicdHlVFR2jjDNUJugr0vos2egEDi7Q5Qt5wRdiYlp3qJGHe0XOM7w5dXTdDThQPAQwzXLA-O-QRXvv_uSD9HrKjt8E/s1600/java2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrezCSiTGSCQqZansPdGTgU1lhgsbYpvmEeITl9Q0RZl8T1jhqYicdHlVFR2jjDNUJugr0vos2egEDi7Q5Qt5wRdiYlp3qJGHe0XOM7w5dXTdDThQPAQwzXLA-O-QRXvv_uSD9HrKjt8E/s640/java2.JPG" width="452" /></a></div>
<div>
Una vez descargado el JDK instálelo como se ve a continuación</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzIVAoAWg8O0J-N9zwjYHTire7M6tNLRzo2jHNQNGY7xKk0ZpIngT_PTfoSCJ2BphQn7xFqMdLYlSxtsfg_KLfO1Jhu33qj8QXjfvdoEUPnGGiA2G0jwcDqiIbsXxwpqPi4TSGYy6E7_Q/s1600/javainstall.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="303" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzIVAoAWg8O0J-N9zwjYHTire7M6tNLRzo2jHNQNGY7xKk0ZpIngT_PTfoSCJ2BphQn7xFqMdLYlSxtsfg_KLfO1Jhu33qj8QXjfvdoEUPnGGiA2G0jwcDqiIbsXxwpqPi4TSGYy6E7_Q/s400/javainstall.JPG" width="400" /></a></div>
<div>
<div>
Siga los pasos hasta terminar la instalación. </div>
<div>
Esto supone que se han configurado correctamente, una manera de probarlo es en la línea de comandos tecleando: java –version -como se ve a continuación</div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiD9puO1Skk84SPnVoC_lix_2Ra1JtcJVL4Log4dFa5-myN2eGpHwZDYL8WOn0ClhOSMoiKQ6GaNE80Tchyj0iAR04xLVnu_DcXXVfdjRs6wYLvzFjitXyP6-o5_QoHd1D09rBUN7GU5Q/s1600/java5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="121" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiD9puO1Skk84SPnVoC_lix_2Ra1JtcJVL4Log4dFa5-myN2eGpHwZDYL8WOn0ClhOSMoiKQ6GaNE80Tchyj0iAR04xLVnu_DcXXVfdjRs6wYLvzFjitXyP6-o5_QoHd1D09rBUN7GU5Q/s400/java5.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<div>
<b>2.<span class="Apple-tab-span" style="white-space: pre;"> </span>Instalación de Eclipse </b></div>
<div>
Quizás el paso más fácil y sencillo de la instalación que lo descargamos de la siguiente dirección.</div>
<div>
<a href="http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlUEBLXktiJx84mhhsX3g8b9i78vS6aSXwtBVE3czDeabHmjtZyQMfjS5b-2I8SREXWH2OWg3bf-xg1yPf6sqbnOuUcRAD2exS51CaPheflqe3oJy0zkBntWoKw5ukYLOlGVyKJaKfpnc/s1600/Nueva+imagen.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlUEBLXktiJx84mhhsX3g8b9i78vS6aSXwtBVE3czDeabHmjtZyQMfjS5b-2I8SREXWH2OWg3bf-xg1yPf6sqbnOuUcRAD2exS51CaPheflqe3oJy0zkBntWoKw5ukYLOlGVyKJaKfpnc/s400/Nueva+imagen.png" width="400" /></a></div>
<div>
<div>
Se aconseja descargar el IDE for Java developers, elija su plataforma de sistema operativo x86 o x 64 bits.</div>
<div>
Después de descargarlo la instalación consiste en descomprimirlo en la carpeta que solamente así queda ya instalado Eclipse (portable).</div>
<div>
Debería arrancar sin problemas por que automáticamente detecta si el JDK está instalado en el equipo, de otra forma le saldría un mensaje de que no se lo ha detectado.</div>
<div>
Al ejecutarlo le confirma el espacio de trabajo que es donde se guardaran sus proyectos, y arranca Eclipse como vemos a continuación.</div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_NTHoJ3u_bbs-RjVpcaXmFTDbVUYLwV_KlDaHRdDa1PCoAn9zpepAiaJu2zR2fNC9lpKax_LA77Nc_kK6gqvC0oIA1TDuSHqHfv_JwXDViKgTYJbwnnbKMX9B3Vy7TzcF2F1X1c-__1E/s1600/java6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="218" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_NTHoJ3u_bbs-RjVpcaXmFTDbVUYLwV_KlDaHRdDa1PCoAn9zpepAiaJu2zR2fNC9lpKax_LA77Nc_kK6gqvC0oIA1TDuSHqHfv_JwXDViKgTYJbwnnbKMX9B3Vy7TzcF2F1X1c-__1E/s320/java6.JPG" width="320" /></a></div>
<div>
<div>
Hasta este punto tenemos instalado el JDK y el IDE Eclipse, puede hacer pruebas programado en java el clásico hola mundo que hay en muchos sitios web.</div>
<div>
<br /></div>
<div>
<b>3.<span class="Apple-tab-span" style="white-space: pre;"> </span>Instalación Plugin Android en Eclipse ADT</b></div>
<div>
Son las herramientas de desarrollo para Android en eclipse, necesaria para integrar el SDK de Andorid y el emulador con eclipse.</div>
<div>
Siga los siguientes pasos: Help -> Install new software</div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-mpEYMxZiAlay3vGLgD44ryGm-jsGe-PuIXVG3dBotT38Qn0P_aHPDNzWSJHahUEIbraON6W1H3xAX9G2LEsnoTq_X-jykprK3tpq-LZsYJB5EzMPWcheHEIOXnsfG2SK0CaVmiyoB-g/s1600/Nueva+imagen+(1).png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-mpEYMxZiAlay3vGLgD44ryGm-jsGe-PuIXVG3dBotT38Qn0P_aHPDNzWSJHahUEIbraON6W1H3xAX9G2LEsnoTq_X-jykprK3tpq-LZsYJB5EzMPWcheHEIOXnsfG2SK0CaVmiyoB-g/s400/Nueva+imagen+(1).png" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div>
Después de hacer click en Add </div>
<div>
En Names usted puede escribir el nombre del repositorio en mi caso puse ”ADT for Android ” y abajo la dirección del recurso que es:<br />
<a href="https://dl-ssl.google.com/android/eclipse/">https://dl-ssl.google.com/android/eclipse/</a></div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhybNF2C4zkoWQe1nsJOp0SLK9LKDpZWWqSpxxzvXFlEYglxyRclecVYQ06Xyw__GgQlPivu5kgGW4jnVyHOib9vLpry82Is979ofLFprgpMlwVV9B0Evx-cSOM4Z8JFrTsxgbeCEWy28w/s1600/and2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhybNF2C4zkoWQe1nsJOp0SLK9LKDpZWWqSpxxzvXFlEYglxyRclecVYQ06Xyw__GgQlPivu5kgGW4jnVyHOib9vLpry82Is979ofLFprgpMlwVV9B0Evx-cSOM4Z8JFrTsxgbeCEWy28w/s400/and2.JPG" width="400" /></a></div>
<div>
Una vez añadida esa ruta le saldrán opciones como se ve en la figura siguiente seleccione todas las que correspondan a Developers Tools, el NDK corresponde a programación nativa escrita en C++ que por ahora no nos interesa, así que puede descartarla.</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5UBpaGKta0Wm64M-3oaWFxt3RqdX91X8YMk2db7cIZNFsORZEZD4Xr_bmx8MyBuTnRfb0fa50TOIwhrBTf3QMBOsOSxau-0857cuYL-7AgYhLDsuknPDK9uNUklELcjTEe095-_vYCNY/s1600/ndtools.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="355" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5UBpaGKta0Wm64M-3oaWFxt3RqdX91X8YMk2db7cIZNFsORZEZD4Xr_bmx8MyBuTnRfb0fa50TOIwhrBTf3QMBOsOSxau-0857cuYL-7AgYhLDsuknPDK9uNUklELcjTEe095-_vYCNY/s400/ndtools.JPG" width="400" /></a></div>
<br />
Acepte los términos de instalación y listo.<br />
<br />
<b>4.<span class="Apple-tab-span" style="white-space: pre;"> </span>Instalación del SDK de Android</b><br />
<br />
Descargue el SDK de Android que son las librerías necesarias y APIs para programar.<br />
El link de descarga <a href="http://developer.android.com/sdk/index.html">http://developer.android.com/sdk/index.html</a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYEMYRfpFFBwZJeNLjX3Ae7cqVmTXq4aOIz0Mql24BecN8ZgWUrMwSxU1MInn8Uqg90PimkUMLCVaTQL8C9MCV_2IB1LjFIaGCroi0ElCcncpc4ZjHhQKXVZDC6-gwP3hFeEiHNbdT4L4/s1600/java8.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYEMYRfpFFBwZJeNLjX3Ae7cqVmTXq4aOIz0Mql24BecN8ZgWUrMwSxU1MInn8Uqg90PimkUMLCVaTQL8C9MCV_2IB1LjFIaGCroi0ElCcncpc4ZjHhQKXVZDC6-gwP3hFeEiHNbdT4L4/s400/java8.JPG" width="400" /></a></div>
<br />
Tenga el cuidado de descargar el SDK para Windows.<br />
Una vez descargado comience la instalación como se ve a continuación.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjco4yDqpsCgtdqtpnLJUXtOpQyAahIYb3ksALEjXD2_Z_mnqbEd0wO-BeDZCCZhcDB33JZ9otOyHowUZpM0ahGfK1zz84mgnlUKz7W_saC2vqrpgin6DbDSpIguBkhiJPs_MqqxX_znzM/s1600/java9.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjco4yDqpsCgtdqtpnLJUXtOpQyAahIYb3ksALEjXD2_Z_mnqbEd0wO-BeDZCCZhcDB33JZ9otOyHowUZpM0ahGfK1zz84mgnlUKz7W_saC2vqrpgin6DbDSpIguBkhiJPs_MqqxX_znzM/s400/java9.JPG" width="400" /></a></div>
<br />
Siga las instrucciones, como se dará cuenta empezara a detectar JDK y demás configuraciones.<br />
Después de su instalación podemos verificarla de la siguiente manera en los nuevos programas instalados, aparecerá el SDK manager como vemos a continuación.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifxX4YHLTpyLMK2CwWjEl101MCY2BhRazGyGYUFs4BWRHtIsTExOiuRbDGw5BDAsGLpHsUh6rjtlIXu9ifF4IG5oDMm7gAzY2wJGwtmsZTh1yr7Cy6zZF_5iZzH-LizUrEyiaHsB5tZjs/s1600/java10.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="391" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifxX4YHLTpyLMK2CwWjEl101MCY2BhRazGyGYUFs4BWRHtIsTExOiuRbDGw5BDAsGLpHsUh6rjtlIXu9ifF4IG5oDMm7gAzY2wJGwtmsZTh1yr7Cy6zZF_5iZzH-LizUrEyiaHsB5tZjs/s400/java10.JPG" width="400" /></a></div>
<div>
<div>
Este también se integrara a eclipse pero para ello necesitamos instalar el Plugin que ya vimos en el punto anterior.</div>
<div>
Recapitulando hasta este punto deberíamos tener Android integrado correctamente a eclipse pues como lo verificamos? De la siguiente forma en el Menu->Window de esta forma deberían aparecer el SDK y AVD Manager de Android como se muestra a continuación.</div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaj1qUPYVczpTvarJfi1mMdglNs8C4xppLFY3VCTb355mYUi-gf2LDRn6Ga0gAMo3nUdpuUbIC4JbnHUIXyzAa3v0vOtp-cvvPYHTMluQItqAJbgvVtiAfUvBU640w31y-f9u-MohiSR8/s1600/Nueva+imagen+(2).png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaj1qUPYVczpTvarJfi1mMdglNs8C4xppLFY3VCTb355mYUi-gf2LDRn6Ga0gAMo3nUdpuUbIC4JbnHUIXyzAa3v0vOtp-cvvPYHTMluQItqAJbgvVtiAfUvBU640w31y-f9u-MohiSR8/s400/Nueva+imagen+(2).png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<div>
<br /></div>
<div>
<b>5.<span class="Apple-tab-span" style="white-space: pre;"> </span>Configuración de AVD de Android</b>.</div>
<div>
El AVD Android Virtual Device permite desarrollar y probar aplicaciones de manera local, que en si es un emulador del dispositivo móvil con Android.</div>
<div>
Pero antes de Configurarlo debemos descargar los SDK targets que son las versiones del core de Android , la administración de descargas de estos targets la realizan por el Android SDK Manager como lo vemos a continuación.</div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifxX4YHLTpyLMK2CwWjEl101MCY2BhRazGyGYUFs4BWRHtIsTExOiuRbDGw5BDAsGLpHsUh6rjtlIXu9ifF4IG5oDMm7gAzY2wJGwtmsZTh1yr7Cy6zZF_5iZzH-LizUrEyiaHsB5tZjs/s1600/java10.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="391" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifxX4YHLTpyLMK2CwWjEl101MCY2BhRazGyGYUFs4BWRHtIsTExOiuRbDGw5BDAsGLpHsUh6rjtlIXu9ifF4IG5oDMm7gAzY2wJGwtmsZTh1yr7Cy6zZF_5iZzH-LizUrEyiaHsB5tZjs/s400/java10.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
Para tener una idea depara que target desarrollar pueden visitar este sitio <a href="http://developer.android.com/about/dashboards/">http://developer.android.com/about/dashboards/</a> que indica la porcentaje de distribución de las versiones.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNN3BqI1xS7wZDM0Z3hi1AbODlZp_tbD8-pry_s5NOPbiQbkyOx3j4jPWPjb631z0cPfYBB-9HwK8dd22KdwweXILZhE6eZwflxel9RGYhiZbsrGPbxbuRZ3oo6i0xmxDuU9mSV_62BwA/s1600/Nueva+imagen+(3).png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="267" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNN3BqI1xS7wZDM0Z3hi1AbODlZp_tbD8-pry_s5NOPbiQbkyOx3j4jPWPjb631z0cPfYBB-9HwK8dd22KdwweXILZhE6eZwflxel9RGYhiZbsrGPbxbuRZ3oo6i0xmxDuU9mSV_62BwA/s400/Nueva+imagen+(3).png" width="400" /></a></div>
<div>
<div>
Explicando las componentes de descarga:</div>
<div>
<b>SDK Plataform:</b> EL núcleo que debe ser instalado para desarrollar aplicaciones de acuerdo a la versión que se requiera.</div>
<div>
<b>Documentation For Android SDK:</b> Documentación offline de la versión SDK.</div>
<div>
<b>Samples for SDK:</b> Demostraciones y ejemplos usando las Apis de Android.</div>
<div>
<b>Google Apis: </b> No forma parte del núcleo, permite desarrollar aplicaciones con Apis de Google como por ejemplo Google Maps.</div>
<div>
Después de por lo menos descargar un Target (pueden descargarlos los que quieran) ahora podemos configurar el AVD Android Virtual Device:</div>
<div>
Para ello en Eclipse Window->AVD Manager un ventana parecida a esta (Figura siguiente), actualmente tengo configurado un AVD para Android 2.3.3, para crear uno hacemos clic en New..</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUxMrobf2R01PC1aBJOUyMDc2Jws8UqWT0CHRUmJECtYQY9EkGRSvR2V3QxfSPv_FhShgSNhUDNPtSPnyUcxr2NhvjCpQ3EhuUrDFKNwU_SVKpGWBSTpizigtTGvXnXiJqFxSdiE7RPZM/s1600/avd.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUxMrobf2R01PC1aBJOUyMDc2Jws8UqWT0CHRUmJECtYQY9EkGRSvR2V3QxfSPv_FhShgSNhUDNPtSPnyUcxr2NhvjCpQ3EhuUrDFKNwU_SVKpGWBSTpizigtTGvXnXiJqFxSdiE7RPZM/s400/avd.JPG" width="400" /></a></div>
<div>
Ventana de Configuración AVD.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBgKDrhSxvJ1NbLLj3z8uJ6PEhARfIe4Y_OBeuV0X0cLBVV4YhyphenhyphenQ79UqpaJXq0FblkYm4Vzi67o-ONCbKKaNKWpbPHfWdTd4S2PA9sSN92ka1hP5a4gPfcqPVX2vhd_hyfwIw2VpV1G7c/s1600/avdconfiguracion.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBgKDrhSxvJ1NbLLj3z8uJ6PEhARfIe4Y_OBeuV0X0cLBVV4YhyphenhyphenQ79UqpaJXq0FblkYm4Vzi67o-ONCbKKaNKWpbPHfWdTd4S2PA9sSN92ka1hP5a4gPfcqPVX2vhd_hyfwIw2VpV1G7c/s400/avdconfiguracion.JPG" width="252" /></a></div>
<div>
<div>
En <b>Name:</b> Escribimos el nombre de AVD para que podamos identificarlo, en mi caso Puse AVD for Android 2.3.3, </div>
<div>
<b>Target:</b> Seleccionamos para el Target que hemos descargado, puede configurar diferentes AVD para Versiones distintas.</div>
<div>
<b>SD Card:</b> Es el tamaño del disco imagen local para el Vitual Device suficiente que ponga un número entre 50 y 20. </div>
<div>
<br /></div>
<div>
<b>SnapShot:</b> Permite la persistencia de los estados del Virtual Device entre sesiones.</div>
<div>
Skin: Dimensión de la Pantalla en Pixeles.</div>
<div>
<b>Hardware</b>: Permite añadir Hardware al Virtual Device como GPS o Cámara dependiendo del tipo de aplicaciones que va a desarrollar.</div>
<div>
<br /></div>
<div>
Terminado la configuración del AVD. Podemos hacer la prueba ejecutando el Emulador para verifica si todo está instalado e integrado.</div>
<div>
Para ejecutar el Emulador en la ventana de AVD Manager seleccionamos nuestro AVD configurado y clic en el botón Start.</div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoVLSrVSJ8fhRrhrY5pJwKYa8Lc-YEzts-i96AxF7ZLvnrIHV1iYhnbXcCzbybi59XOrtKjP8osLiv3DVeWsni5sD1l2dTuUWX6i1PWV1_vX7QGYcSzy1yx6ihsq3EAf0uJHrBhkAy09I/s1600/avd44.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoVLSrVSJ8fhRrhrY5pJwKYa8Lc-YEzts-i96AxF7ZLvnrIHV1iYhnbXcCzbybi59XOrtKjP8osLiv3DVeWsni5sD1l2dTuUWX6i1PWV1_vX7QGYcSzy1yx6ihsq3EAf0uJHrBhkAy09I/s400/avd44.JPG" width="400" /></a></div>
<div>
Confirma la ventana de ejecución y posteriormente arranca el emulador y tendríamos un resultado parecido a este.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirfa-uyI4nA4Zf5K3URPnnqbuc_qBJ3K2pNBGfjWddIncAlFTfxzdLh0atFgNx4LdEImDvpHel6cpJL2Ftds8eU_LlSOJmjCzZyQIzP-MDFSoAQmIyuooJ1FcDn_6-EAshT4CbuFE4a64/s1600/Nueva+imagen+(1).bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirfa-uyI4nA4Zf5K3URPnnqbuc_qBJ3K2pNBGfjWddIncAlFTfxzdLh0atFgNx4LdEImDvpHel6cpJL2Ftds8eU_LlSOJmjCzZyQIzP-MDFSoAQmIyuooJ1FcDn_6-EAshT4CbuFE4a64/s320/Nueva+imagen+(1).bmp" width="320" /></a></div>
<div>
<br /></div>
<div>
<div>
Si llega hasta aquí entonces habrá terminado la instalación el IDE Eclipse con Android con éxito y estará listo para desarrollar aplicaciones Andriod.</div>
<div>
Pronto subiré el clásico ejemplo de HOLA MUNDO y algo referente a la Arquitectura que es muy importante entenderla para desarrollar en Android espero que haya sido útil este tutorial saludos y hasta la próxima.</div>
</div>
<div>
<br /></div>
<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/08142453206346121719noreply@blogger.comtag:blogger.com,1999:blog-9039776865217236895.post-77656115063313052962012-06-23T12:24:00.000-07:002012-06-24T20:58:19.193-07:00Añadir un AboutBox o Cuadro Acerca de a un proyectoEste es un ejemplo sencillo y fácil de como mostrar una ventana <i> Acerca de (AboutBox).</i><br />
<br />
Algunas veces los desarrolladores prefieren hacerlas <i>manualmente</i>, pero C # en Windows Forms ofrece la facilidad de Añadir este formulario pre diseñado, donde no se modifica directamente en formulario de diseño ningún campo excepto la imagen, que puede ser modificada.<br />
La información es recuperada directamente del Ensamblado como veremos a continuación.<br />
<br />
<span style="background-color: white;">Procedimiento</span>:<br />
<br />
<br />
<ul>
<li><span style="background-color: white;">Agregue el Formulario Acerca de: Agregar > Nuevo Elemento > Windows Forms > Cuadro Acerca de , como se muestra en la figura.</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB8z6dLpVRnXLFj4TobT4mnJ75CzjFgd1Wp94kxsnd5Mk8Xo3f7RA4kUvTXmOHXSqg_nsTt_1ccvjKp6bZg2DyuhWKgAWK00LgPJgXQeesfqbBiJy3tU3JH3jpmN19OWhW92Oh0eSqn-Q/s1600/agregar.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB8z6dLpVRnXLFj4TobT4mnJ75CzjFgd1Wp94kxsnd5Mk8Xo3f7RA4kUvTXmOHXSqg_nsTt_1ccvjKp6bZg2DyuhWKgAWK00LgPJgXQeesfqbBiJy3tU3JH3jpmN19OWhW92Oh0eSqn-Q/s400/agregar.JPG" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRAbP4IveiHwS0AzWop-kqV4RDjvJDoXGkyU0nmWRjxgXvIilqA9LmOz0rgCrrOY9nSiFGRd_rbt9QUcBqx8jRa9tkvAvgkveyeJ9m943FQXnoR7aiIKmU4TV3bq4afcCknbHSk-v9rj8/s1600/Captura2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="303" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRAbP4IveiHwS0AzWop-kqV4RDjvJDoXGkyU0nmWRjxgXvIilqA9LmOz0rgCrrOY9nSiFGRd_rbt9QUcBqx8jRa9tkvAvgkveyeJ9m943FQXnoR7aiIKmU4TV3bq4afcCknbHSk-v9rj8/s400/Captura2.JPG" width="400" /></a></div>
<div>
<a name='more'></a></div>
<div>
Como se aprecia se ven varios Labels, que son llenados automáticamente por la aplicación al compilarse.</div>
<div>
<span style="background-color: white;"><br /></span></div>
<div>
<span style="background-color: white;">Para modificar esta información debemos hacer los siguiente:</span></div>
<div>
<br /></div>
<div>
<ul>
<li>Barra de herramientas de VS: Proyecto > Propiedades ... > Aplicación.</li>
</ul>
<div>
<br /></div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU8h34ue3d67r05woHsQUF4-p1v_jLs7bXmezqRwfKAVKGbYxVVfddgT6RIngRXSCmD_Lq9aunxOwHx7cwdY66hTqRGleL9U_ORtzMIpWKDCmYcO4Kftw6mOKI4NK-Gat9bXYRR4b6myg/s1600/Captura3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="356" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU8h34ue3d67r05woHsQUF4-p1v_jLs7bXmezqRwfKAVKGbYxVVfddgT6RIngRXSCmD_Lq9aunxOwHx7cwdY66hTqRGleL9U_ORtzMIpWKDCmYcO4Kftw6mOKI4NK-Gat9bXYRR4b6myg/s640/Captura3.JPG" width="640" /></a></div>
<div>
<br /></div>
<div>
En Figura Anterior vemos diferentes propiedades y referencias del proyecto, en esta oportunidad nos concentramos en las que son pertinentes al tema, la<b> Información del Ensamblado</b> haciendo un clic sobre este.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDM4NJg3BOxc7UCWgsZOeAbvqz1rYv_Y7EfEM-A2SLgDF0wI9k3P5MS8ZRBfbob_Izyv7u9wwbUFDxWuwnNrK8ZdnoBevB2PrMIwRFFD65FEhYIqQiQLAsNqxdP-NfuMIq8dvzObiGDXw/s1600/Captura4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="371" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDM4NJg3BOxc7UCWgsZOeAbvqz1rYv_Y7EfEM-A2SLgDF0wI9k3P5MS8ZRBfbob_Izyv7u9wwbUFDxWuwnNrK8ZdnoBevB2PrMIwRFFD65FEhYIqQiQLAsNqxdP-NfuMIq8dvzObiGDXw/s400/Captura4.JPG" width="400" /></a></div>
<div>
<br /></div>
<div>
Muestra la siguiente Ventana, todos los campos hacen referencia a la información del Ensamblado se introduce los campos de acuerdo al software y sus características como Marca, Compañía, Versión, etc. los mismos que se mostraran el Cuadro Acerca de o AboutBox cuando se ejecute la aplicación.</div>
<div>
<br /></div>
<div>
El código para mostrar el Formulario Aboutbox.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRP7PBJWCjkZTGJ8rxQHVk2vIMGQi8PGxA5FkZBE3WjnAvT0x8Wl5yOb6CAeTr3keFFMJ39LhaPwJLFezQFWpiL8G83L33qe-D_luD1HspawlWmAgP5JE60pZB4KnB_x9nb7J7ZPQlZSg/s1600/Captura5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRP7PBJWCjkZTGJ8rxQHVk2vIMGQi8PGxA5FkZBE3WjnAvT0x8Wl5yOb6CAeTr3keFFMJ39LhaPwJLFezQFWpiL8G83L33qe-D_luD1HspawlWmAgP5JE60pZB4KnB_x9nb7J7ZPQlZSg/s1600/Captura5.JPG" /></a></div>
<div>
<br /></div>
<div>
Usualmente este Formulario se llama por el método <i>ShowDialog() </i>por ser poco relevante en la aplicación.</div>
<div>
<br /></div>
<div>
Ok el resultado es el siguiente:</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXMDj1JJUc6bT3nBHrdPvr6jHklEQ3a4RDsO1lHF351W-rMebPWurzgQY7A03yfv7B7uYINlP2ykVV7_o1JP6z2Fo7G5WITzs6I4ACoHq0aQTPES9aurtAWJ42gyd-fVqVzvMMTtDRHR4/s1600/Captura7.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXMDj1JJUc6bT3nBHrdPvr6jHklEQ3a4RDsO1lHF351W-rMebPWurzgQY7A03yfv7B7uYINlP2ykVV7_o1JP6z2Fo7G5WITzs6I4ACoHq0aQTPES9aurtAWJ42gyd-fVqVzvMMTtDRHR4/s320/Captura7.JPG" width="320" /></a></div>
<div>
<br /></div>
<div>
<span style="background-color: white;">Espero haya sido útil, si bien no es complicado pero es necesario a la hora de Realizar un proyecto software en C#.</span></div>
<div>
<span style="background-color: white;"><br /></span></div>
<div>
Saludos.</div>Anonymoushttp://www.blogger.com/profile/08142453206346121719noreply@blogger.comtag:blogger.com,1999:blog-9039776865217236895.post-47300210870186071832012-04-16T17:50:00.001-07:002012-04-16T18:07:14.044-07:00TextBox que acepta solo números y restricción de caracteresMuy útil para la validación o simplemente restringir las entradas de datos en los formularios.<br />
En esta oportunidad veremos la restricción de caracteres en un Control TextBox, para esto hacemos uso del Evento KeyPress como vemos a continuación:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6yaiRdCtjBbbJltdwOoHUaa1WqO_vImgsF7cOnT3f0K77jGKEPU1I3ZOenUfuAZZHLpidpOSe7w_X2FHfr2w3Mxw-2kZcYqfFyhppcMr299CqhHN0AdIlms6OJ5BdHT_FEuDFd3LFw6A/s1600/key.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6yaiRdCtjBbbJltdwOoHUaa1WqO_vImgsF7cOnT3f0K77jGKEPU1I3ZOenUfuAZZHLpidpOSe7w_X2FHfr2w3Mxw-2kZcYqfFyhppcMr299CqhHN0AdIlms6OJ5BdHT_FEuDFd3LFw6A/s1600/key.PNG" /></a></div>
<br />
<a name='more'></a><br />
<br />
En este ejemplo usamos y tres controles TextBox uno que acepta entrada de solo números , otro de solo letras, y por ultimo caracteres definidos por el desarrollador.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6FEf49kXdMiWuws-QTMzlFQ7v4n41FTMGvJFTiv8mAxOnDoGb6Bm8PTqRP9NIddT67PUlXZ4zGJrOpNoi9rVs2jr3wi57rY7hV9gUPXDlInqmDj2UGL_Nd4J_lf7fW82udRv-Q9D8LYA/s1600/formKey.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="259" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6FEf49kXdMiWuws-QTMzlFQ7v4n41FTMGvJFTiv8mAxOnDoGb6Bm8PTqRP9NIddT67PUlXZ4zGJrOpNoi9rVs2jr3wi57rY7hV9gUPXDlInqmDj2UGL_Nd4J_lf7fW82udRv-Q9D8LYA/s320/formKey.PNG" width="320" /></a></div>
<br />
El código Fuente:<br />
<br />
<pre class="brush: csharp">public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
private void txtNumeros_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsNumber(e.KeyChar) && e.KeyChar != (char)8)
{
e.Handled = true;
}
}
private void txtLetras_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsLetter(e.KeyChar) && e.KeyChar != (char)8)
{
e.Handled = true;
}
}
private void txtPersonalizado_KeyPress(object sender, KeyPressEventArgs e)
{
string cadena = "12345xyz" + (char)8;
if (!cadena.Contains(e.KeyChar))
{
e.Handled = true;
}
}
}
</pre>
<br />
Explicación el evento captura el carácter cuando se presiona el teclado, el metodo verifica si el caracter cumple la regla si no es asi no el evento se controla, de esat forma se bloquea el ingreso de caracteres , en parte condicional vemos la siguiente expresión: <i>e.KeyChar != (char)8 </i>, como se controla los caracteres generados por el teclado el Backspace debe ser permitido para poder borrar los caracteres introducidos y esta expresión condicional nos permite esta funcionalidad.<br />
<br />
Tambien se puede usar el mismo metodo por omiscion como vemos a continuacion<br />
<br />
<pre class="brush: csharp"> private void txtPersonalizado_KeyPress(object sender, KeyPressEventArgs e)
{
string cadena = "\{}[]" + (char)8;
if (cadena.Contains(e.KeyChar))
{
e.Handled = true;
}
}
</pre>
<br />
por ejemplo en este caso se podrán ingresar todos los caracteres menos los siguientes: <i>\{}[] </i>la diferencia de este método es la condición que no es negada.<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/08142453206346121719noreply@blogger.comtag:blogger.com,1999:blog-9039776865217236895.post-44466532938615072652012-03-29T21:18:00.000-07:002012-03-29T22:01:50.886-07:00Instancia Única de un Formulario con Patrón SingletonCuando empezamos a programar con Windows Forms
la instanciación de un formulario es
básica, pero se presenta un problema
la múltiple instanciación, en nuestras aplicaciones deseamos que solo haya una instancia de un formulario caso contrario el usuario puede complicar su entorno en la aplicación .<br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Cuando un formulario se llama por su método SHOWDIALOG() no necesita esta
solución, ni tampoco se puede asociar a un formulario padre.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
En esta oportunidad veremos como instanciar solo
una vez con ayuda del patrón singleton, si no estás enterado que son patrones, puedes leerlo <a href="http://es.wikipedia.org/wiki/Patr%C3%B3n_de_dise%C3%B1o" target="_blank">aquí</a>, los patrones son soluciones a problemas comunes de diseño de software y con esto me refiero mas propiamente al diseño de clases. </div>
<div class="MsoNormal">
<br />
En este ejemplo crearemos un un formulario padre que albergue dos formularios de los cuales uno sera singleton y otro simple.</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0NlmxXhcKrmtFo7vt2Bj9rsiZE2PELPtlg-I98oUav-yPnpjdWaIBo767vm_VuHyHRmPoB-m9C-GNorQm6USp5Hf3-RwQekU5Y-N11Kt4wIAgPTOOiyIdlOl7M14pFEG2e04VvqUD5gQ/s1600/formsingleton.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0NlmxXhcKrmtFo7vt2Bj9rsiZE2PELPtlg-I98oUav-yPnpjdWaIBo767vm_VuHyHRmPoB-m9C-GNorQm6USp5Hf3-RwQekU5Y-N11Kt4wIAgPTOOiyIdlOl7M14pFEG2e04VvqUD5gQ/s400/formsingleton.PNG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<i><span style="font-size: x-small;">Formulario padre</span></i></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<a name='more'></a><br /><br />
<div class="separator" style="clear: both; text-align: left;">
En propiedades de formulario IsMdiContainer valor true para que tenga un comportamiento de formulario padre, en este caso usé el control toolStrip para llamar a la creación de formularios y también para cerrarlos, posteriormente añadí dos formularios, como vemos a continuacion, FormSimple, FormSingleton. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvwVuvdIlI-pDAAA0kDsbA04y8z_vMby6zdhPiVstAgl_-oD1D4mmHIt6Ekr_cB0tIrEBjiD9yz0qi6iav5bYUEKq5i4VUI2UHRzhabj6NGy3JB8sfCDmMs8CIshospwUzOC8R4FV0N4U/s1600/Formss.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvwVuvdIlI-pDAAA0kDsbA04y8z_vMby6zdhPiVstAgl_-oD1D4mmHIt6Ekr_cB0tIrEBjiD9yz0qi6iav5bYUEKq5i4VUI2UHRzhabj6NGy3JB8sfCDmMs8CIshospwUzOC8R4FV0N4U/s1600/Formss.PNG" /></a></div>
<div class="MsoNormal">
<div style="text-align: center;">
<i><span style="font-size: x-small;">Explorador de soluciones de Visual Estudio 2010</span></i></div>
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Bién nos concentraremos en el formulario Singleton es el que nos interesa, el formulario simple lo añadi solo para ver la diferencia no tiene ninguna característica particular.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A continuación las lineas de codigo del formulario singleton:</div>
<div class="MsoNormal">
<br /></div>
<pre class="brush: csharp"> public partial class FormSingleton : Form
{
private static FormSingleton InstanciaFormulario = null;
public FormSingleton()
{
InitializeComponent();
}
public static FormSingleton Instance()
{
if (InstanciaFormulario == null)
{
InstanciaFormulario = new FormSingleton();
}
return InstanciaFormulario;
}
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
InstanciaFormulario = null;
}
}
</pre>
<div class="MsoNormal">
<br />
<br />
Analizando el código, en la cabecera de la clase declaramos como un tipo privado estático de la misma clase del Formulario Singleton.<br />
Después creamos un método estático publico del mismo tipo del formulario que verificara la existencia de la instancia, y que devuelve el formulario instanciado.<br />
Y por ultimo modificar método Dispose añadiendo la linea de código <i>InstanciaFormulario = null; </i> al final, este método se crea por defecto al agregar un formulario al proyecto, podemos encontrarlo haciendo clic derecho sobre InitializeComponent(); del método constructor del Formulario, e <i>Ir a Definición </i>; como vemos en la siguiente imagen.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbrKQyH6y0VlQUapUkGdxZKPN314GcpAbmJVummAWmXCB5mirpq-jY9IOTBV2nePYoagO8zziEYH_R7KZlEj4D2t8J9tlRE7Qycg2AE2Yo-Ro_aUArLnFXQcw8n34eb7UO5_5B3sD2w1I/s1600/Nueva+imagen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="174" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbrKQyH6y0VlQUapUkGdxZKPN314GcpAbmJVummAWmXCB5mirpq-jY9IOTBV2nePYoagO8zziEYH_R7KZlEj4D2t8J9tlRE7Qycg2AE2Yo-Ro_aUArLnFXQcw8n34eb7UO5_5B3sD2w1I/s320/Nueva+imagen.jpg" width="320" /></a></div>
<div style="text-align: center;">
<i><span style="font-size: x-small;"><br /></span></i></div>
<div style="text-align: center;">
<i><span style="font-size: x-small;">Accediendo a la definición de InitializeComponent()</span></i></div>
<br />
En este caso yo elimine el método Dispose de la Clase parcial Desinger.cs del Formulario , poniéndola en la clase que generalmente usamos para programar.<br />
<br />
EL método dispose de un formulario se ocupa de liberar todo los componentes que pertenecen al formulario como por ejemplo los controles, este se ejecuta cuando el formulario se cierra, en este caso aprovechamos para convertir nula la instancia del formulario.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A continuación el código del Formulario padre:<br />
<br /></div>
<pre class="brush: csharp">public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void toolStripLabel1_Click(object sender, EventArgs e)
{
//corresponde al boton creacion formulario simple
FormSimple FormularioSimple = new FormSimple();
FormularioSimple.MdiParent = this;
FormularioSimple.Show();
}
private void toolStripLabel2_Click(object sender, EventArgs e)
{
//corresponde al boton creacion Formulario Singleton
FormSingleton FormularioSingleton = FormSingleton.Instance();
FormularioSingleton.MdiParent = this;
FormularioSingleton.Show();
}
private void toolStripLabel3_Click(object sender, EventArgs e)
{
// Cerrar todos los formulario hijos creados
foreach (Form ChildForm in this.MdiChildren)
{
ChildForm.Close();
}
}
}
</pre>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Analizando el código del formulario padre, el método que usamos para la creación del formulario singleton es el evento <i>toolStripLabel2_Click , </i>accediendo al método estático del formulario<i> Instantce()</i> que resuelve la instanciación del mismo. <br />
<br />
Los métodos estáticos son una característica de las Clases singleton, uno puede acceder a estos métodos o clases sin necesidad de instanciarlos.<br />
<br />
Y el método para cerrar todos los formulario hijos abiertos definido por el evento <i>toolStripLabel3_Click </i> puede ser considerado un tip en Windows Forms, muy útil para despejar la vista del usuario.<br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
Presentamos en un Slide de imágenes la aplicación: </div>
<div style="text-align: center;">
<br /></div>
</div>
<div style="text-align: center;">
<embed flashvars="host=picasaweb.google.com&captions=1&hl=en_US&feat=flashalbum&RGB=0x000000&feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2F107229079656693361103%2Falbumid%2F5725488137440491009%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" height="267" pluginspage="http://www.macromedia.com/go/getflashplayer" src="https://picasaweb.google.com/s/c/bin/slideshow.swf" type="application/x-shockwave-flash" width="400"></embed></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<i><span style="font-size: x-small;">Imágenes de la aplicación.</span></i></div>
<div style="text-align: left;">
<br />
Mas adelante veremos la aplicación de patrones a proyectos de software, si duda un tema muy interesante. </div>Anonymoushttp://www.blogger.com/profile/08142453206346121719noreply@blogger.comtag:blogger.com,1999:blog-9039776865217236895.post-45876262923216294562012-03-26T19:48:00.000-07:002012-03-26T19:48:21.801-07:00Clases de Estilos de Windows en C#<span style="font-size: large;">Añadir Sombra a un Formulario sin Bordes</span><br />
<br />
La primera entrada de programación C # y Windows Forms este es tip si podría llamare así, es útil cuando usamos un ventana sin bordes en mi caso lo use para un acceso o login.<br />
<br />
Cuando una ventana tiene borde tiene sombra por defecto:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_hiwnqBVCj2Q0P4ehdr9apCOGcbqf2zFO0aO_Z5f5gjzh0f9KNwiOGBTvwqoCbnHkAbRs6hHwd1bJxBPwpvgwcjHsum6f3nlDZZ2Ara1jRbff-7mXNbGTsLNYEQccyqG29PS0b-NKew/s1600/ventana.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_hiwnqBVCj2Q0P4ehdr9apCOGcbqf2zFO0aO_Z5f5gjzh0f9KNwiOGBTvwqoCbnHkAbRs6hHwd1bJxBPwpvgwcjHsum6f3nlDZZ2Ara1jRbff-7mXNbGTsLNYEQccyqG29PS0b-NKew/s1600/ventana.PNG" /></a></div><br />
ahora la misma ventana sin borde<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqRkCOHnrNC96yINzZVQ6KxTMLLi1RD9gXfxEUTa2MV_i3DNXCxlJsy3OB2TeI1sbZlevY_hyVbdq5Z5ExUw4u5Oz-hCcX_hQ-mzhLw32XxKad_vb8Y_ZPo5F8xihI8re57I_S2gciKv0/s1600/Captura8.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="147" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqRkCOHnrNC96yINzZVQ6KxTMLLi1RD9gXfxEUTa2MV_i3DNXCxlJsy3OB2TeI1sbZlevY_hyVbdq5Z5ExUw4u5Oz-hCcX_hQ-mzhLw32XxKad_vb8Y_ZPo5F8xihI8re57I_S2gciKv0/s320/Captura8.PNG" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Aplicando el estilo de sombra aun formulario sin bordes</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD8AP-CY-Tk2wI4N6_Ai3_jrtSEu98X6y3FMJJi5lbZOHCT227si3OwQocdOj2n2gtgAvPCvRX-4rXNe5IknEPoXDispRWzHu5Hanr10Vc9eEGIpDWfpeyPmCQ09ns_0d6Z6NwZcApH74/s1600/Capturacnsombra.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="141" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD8AP-CY-Tk2wI4N6_Ai3_jrtSEu98X6y3FMJJi5lbZOHCT227si3OwQocdOj2n2gtgAvPCvRX-4rXNe5IknEPoXDispRWzHu5Hanr10Vc9eEGIpDWfpeyPmCQ09ns_0d6Z6NwZcApH74/s320/Capturacnsombra.PNG" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Para lograr este resultado se debe añadir la siguientes lineas de código en la clase del Formulario.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><br />
<pre class="brush: csharp">private const int CS_DROPSHADOW = 0x20000;
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ClassStyle |= CS_DROPSHADOW;
return cp;
}
}
</pre><br />
<div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><span style="font-size: large;">Desactivar el botón de cerrar en un Formulario </span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-size: large;"><br />
</span></div><div class="separator" style="clear: both; text-align: left;">Por defecto el formulario se crea con los botones de Minimizar Maximizar y Cerrar en esta caso desactivaremos el botón de cerrar, útil cuando obligamos un usuario a realizar una acción antes de cerrar el Formulario.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW9GVlC7rq-dMjTp2ppcuXwM-r_NEQIfgM1uciPg8J39QAm-8nAQzU1ldXCgwt1A3hut_Zxf0ByiZfc86tq3jevNc0fsTgIzhiZvBsxbP0UmpOTQJNzHp2Fv2GG8PE6T2aEWM5u14Lzlg/s1600/Capturafomr.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW9GVlC7rq-dMjTp2ppcuXwM-r_NEQIfgM1uciPg8J39QAm-8nAQzU1ldXCgwt1A3hut_Zxf0ByiZfc86tq3jevNc0fsTgIzhiZvBsxbP0UmpOTQJNzHp2Fv2GG8PE6T2aEWM5u14Lzlg/s320/Capturafomr.PNG" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Ahora el formulario con el botón de cerrar desactivado</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0pZnEyZVZAel1N3Nb7LFPd-lR6xUp4Sk0cXM3wm9RflloJMKOxWpK3XM4kcmPTIfEBbRG6mUEI2LahJ7FnKhIT3nxAQwpkp4TQyioMXXlS2nKBIai8Be2uIgU2L8mg_YTUoxdtCFlkGI/s1600/Captura78.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="168" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0pZnEyZVZAel1N3Nb7LFPd-lR6xUp4Sk0cXM3wm9RflloJMKOxWpK3XM4kcmPTIfEBbRG6mUEI2LahJ7FnKhIT3nxAQwpkp4TQyioMXXlS2nKBIai8Be2uIgU2L8mg_YTUoxdtCFlkGI/s320/Captura78.PNG" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">este resultado se logra aplicando las siguientes lineas de codigo en la clase del Formulario. </div><div class="separator" style="clear: both; text-align: left;"><br />
</div><pre class="brush: csharp">private const int CS_NOCLOSE = 0x0200;
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ClassStyle |= CS_NOCLOSE;
return cp;
}
}
</pre><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Createparams contiene los parámetros de creación de formulario con override modificamos estos, en posteriores publicaciones mostraremos mas sobre Clases de estilos de Windows en c# y Windows Forms</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><br />
</div>Anonymoushttp://www.blogger.com/profile/08142453206346121719noreply@blogger.com3tag:blogger.com,1999:blog-9039776865217236895.post-31937376635672297282012-03-21T08:46:00.005-07:002012-03-21T23:11:10.377-07:00Maneja Windows 3.1 en tu navegador<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7uRos_kMAvgXp6mnfXtY3W43HHhHnkiJWvz21TKozsv24B4KL5Qkm4YFM-PcDhn5e_f1Q15nhwp4ZBNRcWtSHTFP_Q0RCmwnNuoIShOnfSJ9oyAPT5NjnFdA181205oOyn4uiGYJtiFg/s1600/windows31.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7uRos_kMAvgXp6mnfXtY3W43HHhHnkiJWvz21TKozsv24B4KL5Qkm4YFM-PcDhn5e_f1Q15nhwp4ZBNRcWtSHTFP_Q0RCmwnNuoIShOnfSJ9oyAPT5NjnFdA181205oOyn4uiGYJtiFg/s1600/windows31.gif" /></a>Así es un proyecto de Michael Vincent esta desarrollado en PHP, XHTML y JavaScript nos hace recuerdo a aquellos años allá por 1993, por primera vez se comenzaron a usar los sistemas operativos con interfaz gráfica, bueno hablo de quienes han comenzado usando MS DOS por linea de comandos.. <br />
Windows 3.1 era la interfaz gráfica de MS-DOS 6.2, que también se podía manejar con lineas de comando,Windows salio realmente con una interfaz grafica como Sistema Operativo en windows 95. <br />
<br />
Es un proyecto interesante pues uno puede usar el símbolo del sistema y ejecutar los comandos básicos de MSDOS, jugar buscaminas utilizar el browser para navegar en Internet <br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj76y2fnKgumne-cuX-dji-QadPTDBJgKhQDIl3Q5YNY0rF_-_D_bI8eu0rJn5wlD8sfFNCygOemamp1tqVDP1wpqb4WxIaM9HY1Nj4HJlN0IPpYca4Qe7S1XHTmQyupgQeqBOTGuoAv-Y/s1600/Captura9.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="306" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj76y2fnKgumne-cuX-dji-QadPTDBJgKhQDIl3Q5YNY0rF_-_D_bI8eu0rJn5wlD8sfFNCygOemamp1tqVDP1wpqb4WxIaM9HY1Nj4HJlN0IPpYca4Qe7S1XHTmQyupgQeqBOTGuoAv-Y/s400/Captura9.PNG" width="400" /></a></div><br />
<div style="text-align: center;"><i>Widnows 3.1 on line </i></div><div style="text-align: center;"><br />
</div><div style="text-align: left;">Referencias del sitio: <a href="http://www.michaelv.org/" target="_blank">http://www.michaelv.org/ </a></div>Anonymoushttp://www.blogger.com/profile/08142453206346121719noreply@blogger.com0tag:blogger.com,1999:blog-9039776865217236895.post-85943040876088764672012-03-20T20:10:00.005-07:002012-03-22T01:26:39.376-07:00Windows 8 podría Salir en Octubre 2012<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdLZyxezgowfkDDgOHPJ5o511ugVAhWIzmokIcrNw12FvxAZtJ55dQWHcBwH-ODlIZsOsskxreE4RY6lWCwEzkFL-4QEDXY2fLoFTHd8WZQQcM10WJgIde_yZtBv1MEU3zLtv7nzI1F4U/s1600/w8.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="72" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdLZyxezgowfkDDgOHPJ5o511ugVAhWIzmokIcrNw12FvxAZtJ55dQWHcBwH-ODlIZsOsskxreE4RY6lWCwEzkFL-4QEDXY2fLoFTHd8WZQQcM10WJgIde_yZtBv1MEU3zLtv7nzI1F4U/s320/w8.jpg" width="320" /></a></div><div style="text-align: justify;"><br />
Es muy probable que, para el mes de octubre salga a la venta Windows 8 ademas de ser tiempo limite para que las tablets que salen a fin de año incorporen el tan esperado sistema Operativo.</div><br />
La interfaz gráfica ha cambiado profundamente -Esto nos hace recuerdo al cambio de Windows 3.1 a Windows 95 -, la barra de herramientas ya no es el acceso principal a las aplicaciones como lo ha sido desde Windows 95, pero aun se mantiene para organización de las la aplicaciones activas.<br />
<br />
La nueva interfaz es llamada metro heredada de los productos de Xbox y Windows Phone, donde las aplicaciones están agrupadas en cuadritos que sirven de acceso.<br />
<br />
La barra lateral que sirve para configuraciones de equipo , Compartir y búsquedas.<br />
<br />
La sección People que te permite conectar y organizar los contactos con cuentas como hotmail, facebook twitter y organizar tus redes sociales.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIAI-NgeapoIfE9V9MLApKcM6B_Iep7LOC-NOv2O0IMQYKD8KIQ_Ws6O37e1kuocuDFOUHqvlc7c46W4-6jUpBLWisdoZ-imCd-KNslhE6gdeh4ZM4ou1LEg2AH-W1a9XtZP7cqzXi_kc/s1600/windows+8+preview.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIAI-NgeapoIfE9V9MLApKcM6B_Iep7LOC-NOv2O0IMQYKD8KIQ_Ws6O37e1kuocuDFOUHqvlc7c46W4-6jUpBLWisdoZ-imCd-KNslhE6gdeh4ZM4ou1LEg2AH-W1a9XtZP7cqzXi_kc/s400/windows+8+preview.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><i>Pantalla de Inicio de Windows 8 nueva interfaz "Metro"</i></div><br />
Creo que Windows 7 ha recogido todos aquellos conceptos importantes de influencia tecnologica, como las redes sociales, el avance de la telefonía, tablets, localización, etc.<br />
<br />
El kernel de Windos 7 el NT 6.1 y el de Windows 8 es 6.2 -esperemos que el rendimiento mejor que Windows7-compatibilidad con USB 3.0 los Requisitos de Hardware son muy parecidos al de Windows 7.<br />
<br />
<ul><li>Arquitectura x86 (32 bits) y x86-64 (64 bits)</li>
<li>Procesador: 1 GHz en las arquitecturas de 32 bits y 64 bits</li>
<li>Memoria RAM: 1 Gb (32 bits) y 2 Gb (64 bits)</li>
<li>Gráficos: GPU DirectX 9 con Windows Display Driver Model (WDDM) 1.0 (No es necesario, solo se requiere para Windows Aero)</li>
<li>Disco duro: 16 Gb (32 bits) y 20 Gb (64 bits) de espacio libre</li>
<li>Una pantalla capacitiva (opcional) para aprovechar la entrada táctil. ref. Hardware: (<a href="http://es.wikipedia.org/wiki/Windows_8" target="_blank">Wikipedia</a>)</li>
</ul><div>Si estas acostumbrado usar teclado y ratón no te preocupes por que esta funcionalidad aun se mantiene pero es de destacar que se ha extendido las características para pantallas táctiles y tablets, a continuación vemos un corto de un preview de Windows 8: uso del Mouse y Teclado:</div><div><br />
</div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='350' height='275' src='https://www.youtube.com/embed/q9Fczo6E5gE?feature=player_embedded' frameborder='0'></iframe></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Este un preview del nuevo sistema si quieres enterarte directamente de la novedades de windows 8 puedes hacerlo desde el espacio que ha habilitado Microsoft en su sitio para <a href="http://windows.microsoft.com/es-ES/windows-8/consumer-preview" target="_blank">Windows 8</a></span></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='350' height='275' src='https://www.youtube.com/embed/aebfjzdLxJA?feature=player_embedded' frameborder='0'></iframe></div><div><br />
</div><b>Benchmarking de W8 vs W7 </b><br />
Un artículo interesante y prematuro a la vez donde <b> </b>se miden rendimientos<b> e</b>n juegos renderización y manejo de multimedia en este <a href="http://news.cnet.com/8301-17938_105-20107380-1/benchmark-tests-offer-first-hints-of-windows-8-performance/" target="_blank">sitio</a> , si bien los autores indican que windows 8 de prueba tiene dificultades con algunas aplicaciones, y que se espera se puedan solucionar a la salida del producto al mercado, en estas pruebas Windows 7 ha salido victorioso en el aspecto de de juegos y multitarea.<br />
<br />
Windows 8 tiene un buen predecesor así que no tiene fácil el camino de convertirse en un producto estrella de Microsoft como lo ha sido Windows 7, Windows Xp, Windows 98 SE, personalmente mi preferido Windows Xp Sp3 por esa estabilidad y compatibilidad.<br />
<br />
Algo que me inquieta saber, que pasa los usuarios de Windows Xp y sus aplicaciones, Windows 8 mantendrá esa compatibilidad aun? que se tiene en Windows 7 con Xp mode, segun este <a href="http://www.forumswindows8.com/general-discussion/xp-mode-windows-8-a-2758.htm" target="_blank">sitio</a> web parece si, pero esta información sera mas clara cuando el sistema ya sea usado masivamente.Anonymoushttp://www.blogger.com/profile/08142453206346121719noreply@blogger.com0tag:blogger.com,1999:blog-9039776865217236895.post-72041837505900029352012-03-20T01:59:00.000-07:002012-03-20T01:59:38.482-07:00c link up!Surge de las ideas que rondan en mi cabeza cuando estoy frente al computador cosas como Compartir<br />
Curiosidades<br />
C# que es en el lenguaje de programación que mas uso y<br />
Cloud Topics temas y novedades de Internet<br />
-creo haber justificado la primera letra-<br />
y link up que ingles significa compartir vincular en este mundo cada vez es mas conectado..<br />
y así nace un emprendimiento personal que espero sea útil para quienes visiten este diminuto ciberespacio de <a href="http://clinkup.blogspot.com/">clinkup</a>, y útil para mi también; espero tener respuestas de la cuales seguro aprenderé..<br />
sumados estos conceptos sale clinkup.<br />
<br />
Salu2Anonymoushttp://www.blogger.com/profile/08142453206346121719noreply@blogger.com0