13
Buổi 1: Các Widget cơ bản Bài 1:Textview Xây dựng ứng dụng Android đơn giản, chữ hiển thị trên textview load từ font bên ngoài Chép font vni-thufap1.ttf vào folder fonts của assets @Override public void onCreate(Bundle savedInstanceState) { …. Typeface face=Typeface.createFromAsset(getAssets(),"fonts/vni- thufap1.ttf"); tv.setTypeface(face); } } Bài 2: a SpannableString text= new SpannableString("Android với textview"); for (int i =0; i<text.length();i++ ) text.setSpan(new RelativeSizeSpan(0.5f+(0.1f*i)), i, i+1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tv.setText(text,BufferType.SPANNABLE);

Buoi 1_ Các widget cơ bản

Embed Size (px)

Citation preview

Page 1: Buoi 1_ Các widget cơ bản

Buổi 1: Các Widget cơ bản

Bài 1:Textview

Xây dựng ứng dụng Android đơn giản, chữ hiển thị trên textview load từ font bên ngoài

Chép font vni-thufap1.ttf vào folder fonts của assets

@Overridepublic void onCreate(Bundle savedInstanceState) {….Typeface face=Typeface.createFromAsset(getAssets(),"fonts/vni-thufap1.ttf"); tv.setTypeface(face); }}

Bài 2:

aSpannableString text= new SpannableString("Android với textview");for (int i =0; i<text.length();i++ )text.setSpan(new RelativeSizeSpan(0.5f+(0.1f*i)), i, i+1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);tv.setText(text,BufferType.SPANNABLE);}}

Page 2: Buoi 1_ Các widget cơ bản

Bài 3: EditText

Trong main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><ScrollViewandroid:id="@+id/scrollView1"android:layout_width="match_parent"android:layout_height="wrap_content" ><LinearLayout

Page 3: Buoi 1_ Các widget cơ bản

android:id="@+id/linearLayout1"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><!-- EditText for plain text input --><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="EditText For Plain Text Input:" /><!---We have to add android:singleLine="true"so that the next line button will be disabledand multiline effect won't show.-If you want your EditText to be multiline,just remove android:singleLine="true"--><EditTextandroid:id="@+id/editText1"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="Type who you are."android:singleLine="true" ><requestFocus /></EditText><!-- EditText for password input --><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="EditText For Password Input:" /><EditTextandroid:id="@+id/editText3"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="textPassword" ></EditText><!-- EditText for email address input --><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="EditText For Email Address Input" /><EditTextandroid:id="@+id/editText4"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="textEmailAddress" /><!-- EditText for phone number input --><TextViewandroid:layout_width="fill_parent"

Page 4: Buoi 1_ Các widget cơ bản

android:layout_height="wrap_content"android:text="EditText For Phone Number Input" /><EditTextandroid:id="@+id/editText5"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="phone" /><!-- EditText for number input --><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="EditText For Number Input:" /><EditTextandroid:id="@+id/editText9"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="number" /><!-- EditText for signed number input --><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="EditText For Signed Number Input:" /><EditTextandroid:id="@+id/editText10"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="numberSigned" /><!-- EditText for decimal number input --><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="EditText For Decimal Number Input:" /><EditTextandroid:id="@+id/editText11"android:layout_width="match_parent" android:layout_height="wrap_content"android:inputType="numberDecimal" /></LinearLayout></ScrollView></LinearLayout>

Bài 4:

Tạo 1 ứng dụng giống hình

Page 5: Buoi 1_ Các widget cơ bản

Yêu cầu:

- Kiểm tra thông tin họ tên nhập kg được để trống

- Email nhập vào phải hợp lệ.

Bài 5: Radio Button

Xây dựng ứng dụng Android đơn giản có giao diện như sau

Page 6: Buoi 1_ Các widget cơ bản

Đặt các Radio Button vào bên trong 1 RadioGroup

- Tương ứng với mục chọn thực hiện đổi chữ HOA, thường, Viết Hoa Chữ Cái Đầu cho chuỗi nhập

Bài 6: Spinner

Page 7: Buoi 1_ Các widget cơ bản

Yêu cầu: danh sách các mục lấy từ file strings.xml

<?xml version="1.0" encoding="utf-8"?><resources><string name="hello">Demo Spinner</string><string name="app_name">Demo_spinner</string><string name="prompt">Bạn chọn 1 thành phố</string><string-array name="thanhpho"><item >Hà Nội</item><item >Huế</item><item >Sài Gòn</item><item >Cần Thơ</item></string-array></resources>

Code:

public class Demo_spinnerActivity extends Activity {Spinner spinner;TextView tv;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);tv=(TextView) findViewById(R.id.textView2);spinner=(Spinner) findViewById(R.id.spinner1);spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {tv.setText("Bạn vừa chọn thành phố " +spinner.getItemAtPosition(position));}public void onNothingSelected(AdapterView<?> arg0) {// TODO Auto-generated method stub}});}}

Bài 7 : Gallery

Xây dựng ứng dụng Android đơn giản có giao diện như sau

Page 8: Buoi 1_ Các widget cơ bản

- Gồm 1 Gallery và 1 ImageView

- Khi chọn 1 hình ảnh trong Gallery thì nó sẽ được hiển thị ra ImageView bên dưới.

Chuẩn bị: chép 6 file hình ảnh car001.jpg, car002.jpg,….vào folder drawable-hdpi

Code

public class Demo_galleryActivity extends Activity {Gallery gallery;

Page 9: Buoi 1_ Các widget cơ bản

ImageView imageview;private int[] ds_hinhanh={R.drawable.car001,R.drawable.car002,R.drawable.car003,R.drawable.car004,R.drawable.car005,R.drawable.car006};@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// đi tìmgallery=(Gallery) findViewById(R.id.gallery1);imageview=(ImageView) findViewById(R.id.imageView1);// thực hiệngallery.setSpacing(1);gallery.setAdapter(new myAdapter(this));gallery.setSelection(ds_hinhanh.length/2);gallery.setOnItemSelectedListener(new OnItemSelectedListener() {public void onItemSelected(AdapterView<?> parent, View view,int position, long id) {imageview.setImageResource(ds_hinhanh[position]);}public void onNothingSelected(AdapterView<?> arg0) {// TODO Auto-generated method stub}});}class myAdapter extends BaseAdapter{Context context;public myAdapter(Context c){this.context=c;}public int getCount() {return ds_hinhanh.length;}public Object getItem(int position) {return ds_hinhanh[position];}public long getItemId(int position) {return position;}public View getView(int position, View view, ViewGroup parent) {ImageView imageview = new ImageView(this.context);imageview.setImageResource(ds_hinhanh[position]);/* Image should be scaled as width/height are set. */imageview.setScaleType(ImageView.ScaleType.FIT_END);

Page 10: Buoi 1_ Các widget cơ bản

/* Set the Width/Height of the ImageView. */imageview.setLayoutParams(new Gallery.LayoutParams(50, 50));return imageview;}}}

Bài 8: GridView

Chuẩn bị: chép 6 file hình ảnh car001.jpg, car002.jpg,….vào folder drawable-hdpi

Page 11: Buoi 1_ Các widget cơ bản

Code

public class Demo_gridviewActivity extends Activity {GridView gridview;private int[] ds_hinhanh={R.drawable.car001,R.drawable.car002,R.drawable.car003,R.drawable.car004,R.drawable.car005,R.drawable.car006 };@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// đi tìmgridview=(GridView) findViewById(R.id.gridView1);gridview.setAdapter(new ImageAdapter(this));gridview.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> arg0, View arg1, int position,long id) {Toast.makeText(Demo_gridviewActivity.this, "Ban chon hinh anh thu "+position, Toast.LENGTH_LONG).show();}});}// dinh nghia riengpublic class ImageAdapter extends BaseAdapter {private Context mContext;public ImageAdapter(Context c) {mContext = c;}

Page 12: Buoi 1_ Các widget cơ bản

public int getCount() {return ds_hinhanh.length;}public Object getItem(int position) {return null;}public long getItemId(int position) {return 0;}// create a new ImageView for each item referenced by the Adapterpublic View getView(int position, View convertView, ViewGroup parent) {ImageView imageView;imageView = new ImageView(mContext);imageView.setLayoutParams(new GridView.LayoutParams(85, 85));imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);imageView.setPadding(8, 8, 8, 8);imageView.setImageResource(ds_hinhanh[position]);return imageView;}} }