Header ads

Header ads
» » ImageView

ImageView trong Android

Hầu hết tất cả các ứng dụng, web, game trên desktop, web, moblie đều sử dụng hình ảnh. Và trong Android để hiển thị hình ảnh chúng ta sử dụng view được xây dựng sẵn trong Android SDK có tên là ImageView. ImageView là một view có chức năng loading, và hiển thị hình ảnh, hoặc bất cứ drawable. ImageView handle cho chúng ta tất cả các công việc để hiển thị hình ảnh.

ImageView cho phép chúng ta lựa chọn cấu hình khác nhau để hỗ trợ các loại ScaleType  khác nhau. ScaleType là thuộc tính xác định cách thức mà hình ảnh sẽ được scale như thế nào để phù hợp với view của chúng ta. ImageView có thể hiển thị image theo nhiều cách khác nhau phụ thuộc vào các giá trị của thuộc tính scaleType. Một số thuộc tính của ScaleType: center, center_crop, fit_xy, fitStart v.v.

ImageView là class con của View. Do đó, bạn có thể đặt một ImageView  vào bên trong một GroupView trong ứng dụng của mình.

Chúng ta có thể tạo một ImageView trong tập tin XML hoặc khởi tạo ImageView trong code Java

Code ImageView trong XML:

Hình cần hiển thị phải có trong thư mục res/drawable, image có tên là demo.jpg

  <ImageView  android:id="@+id/simpleImageView"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:src="@drawable/demo" />


Thuộc tính thường dùng của ImageView

Bây giờ chúng xem một số thuộc tính hay sử dụng trong ImageViewtrong tập tin XML

1. android:id: Là thuộc tính duy nhất của ImageView. Xem ví dụ sau:

  <ImageView  android:id="@+id/simpleImageView"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  />

2. android:src: là thuộc tính chứa hình ảnh cần hiển thị. Chúng ta cũng có thể tạo hình tại chế độ thiết kế:

  <ImageView  android:id="@+id/simpleImageView"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:src="@drawable/demo" />

Trong Java Class:

Chúng ta cũng có thể set hình ảnh trong Java Class bằng cách gọi phương thức setImageResource()

  ImageView simpleImageView=(ImageView) findViewById(R.id.simpleImageView);  simpleImageView.setImageResource(R.drawable.demo);//set the source in java class

3. android:background: Thuộc tính này xác định màu nền cho ImageView

  <ImageView  android:id="@+id/simpleImageView"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:background="#000"  android:src="@drawable/demo" /><!--black color in background of a image view-->

Trong Java Class

Chúng ta cũng có thể set màu nền cho đối tượng ImageView trong Java Class:

  /*Add in Oncreate() funtion after setContentView()*/  ImageView simpleImageView=(ImageView) findViewById(R.id.simpleImageView);  simpleImageView.setBackgroundColor(Color.BLACK);//set black color in background of a image view in java class

4. android:padding: Thuộc tính này xác định khoảng cách từ đường viền của ImageView với nội dung nó chứa: left, right, top or bottom. 

  • paddingRight: thiết khoảng cách bên phải của  ImageView.
  • paddingLeft: thiết khoảng cách bên trái của  ImageView.
  • paddingTop: thiết khoảng cách phía trên của ImageView.
  • paddingBottom: thiết  khoảng cách phía bên dưới của  ImageView.
  • padding: thiết khoảng cách tất cả 4 phía của  ImageView.

Ví dụ: chúng ta xác định padding=30dp từ mọi phía của ImageView

  <ImageView  android:id="@+id/simpleImageView"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:background="#000"  android:src="@drawable/lion"  android:padding="30dp"/><!--set 30dp padding from all the sides-->

5. android:scaleType: ScaleType là thuộc tính xác định các thức mà hình ảnh sẽ được scale như thế nào để phù hợp với view của chúng ta. ImageView có thể hiển thị image theo nhiều cách khác nhau phụ thuộc vào các giá trị của thuộc tính scaleType. Giá trị của scaleType :fit_xy, center_crop, fitStart v.v .

Giả sử chúng ta có một ImageView có kích thước là width = 200sp, height = 200sp, và hình ảnh có kích thước là 400*500

  <ImageView  android:id="@+id/simpleImageView"  android:layout_width="200sp"  android:layout_height="200sp"      android:src="@drawable/demo"   android:scaleType="fitXY"/><!--set scaleType fit XY-->

Khi set scaleType=fitXY thì có nghĩa hình ảnh đó sẽ được scale về kích thước đúng bằng với kích thước của view là 200*200, và kết quả là hình ảnh sẽ được fit (cố định) đúng với view nhưng hình ảnh không còn giử được ratio của nó nữa.

Ví dụ sau chúng ta dùng giá trị của scaleType="fitStart":

  <ImageView  android:id="@+id/simpleImageView"  android:layout_width="200sp"  android:layout_height="200sp"      android:src="@drawable/demo"   android:scaleType="fitStart"/><!--set scaleType fit fitStart-->


Ví dụ: Trong ví dụ này chúng ta sẽ làm app hiển thị hình ảnh lên một ImageView. Để xem hình người sử dụng click vào 2 Button trên màn hình.  Tiến hành tạo project, vào thư mục  res /layout -> activity_main.xml  thiết kế giao diện sau:

Bước 1: Tạo một project tên là TextView: File->New->Android Application Project điền các thông tin ->Next ->Finish

Bước 2: Download 2 hình và lưu vào thư mục trong project của bạn:

Bước 3: Mở res -> layout -> xml (hoặc) activity_main.xml và thêm code, chúng ta sẽ tạo các TextViewEditText và Button trong  Relative Layout.

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:tools="http://schemas.android.com/tools"      android:layout_width="match_parent"      android:layout_height="match_parent"      android:paddingBottom="@dimen/activity_vertical_margin"      android:paddingLeft="@dimen/activity_horizontal_margin"      android:paddingRight="@dimen/activity_horizontal_margin"      android:paddingTop="@dimen/activity_vertical_margin"      tools:context="hiepsiit.com.imageview.MainActivity" >    <ImageView  android:id="@+id/imgDemo"  android:layout_width="wrap_content"  android:layout_height="300sp"      android:src="@drawable/demo"   android:scaleType="fitXY"/><!--set scaleType fit XY-->    <Button      android:id="@+id/btnDemo1"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_alignParentLeft="true"      android:layout_below="@+id/imgDemo"      android:layout_marginTop="36dp"      android:text="@string/btndemo1" />    <Button      android:id="@+id/btnDemo2"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_alignBaseline="@+id/btnDemo1"      android:layout_alignBottom="@+id/btnDemo1"      android:layout_alignRight="@+id/imgDemo"      android:text="@string/btndemo2" />    </RelativeLayout>  

Chuyển quan XML đổi tên các điều khiển: 

Điều khiển android:id  
TextView1 imgDemo @string/txtnuma
Button1 btnDemo1 @string/btndemo1
Button2 btnDemo2 @string/btndemo2

Vào thư mục res/values bổ sung string.xml (Chúng ta không khai báo trực tiếp nhãn vào các điều khiển, mà thông qua string.xml)

  <string name="btndemo1">Xem hình 1</string>  <string name="btndemo2">Xem hình 2</string>

Bước 3: Mở app -> src ->MainActivity.java và thêm code. Khi click vào Button "Xem hình 1" sẽ hiển thị hình demo.jpg, click vào Button "Xem hình 2" sẽ hiển thị hình demo2.jpg

  package hiepsiit.com.imageview;    import android.app.Activity;  import android.os.Bundle;  import android.view.Menu;  import android.view.MenuItem;  import android.view.View;  import android.view.View.OnClickListener;  import android.widget.Button;  import android.widget.ImageView;    public class MainActivity extends Activity {  	ImageView imgDemo;  	Button btnDemo1, btnDemo2;  	@Override  	protected void onCreate(Bundle savedInstanceState) {  		super.onCreate(savedInstanceState);  		setContentView(R.layout.activity_main);  		imgDemo	=	(ImageView) findViewById(R.id.imgDemo);  		btnDemo1=	(Button)	findViewById(R.id.btnDemo1);  		btnDemo2=	(Button)findViewById(R.id.btnDemo2);  		  		btnDemo1.setOnClickListener(new OnClickListener() {  			  			@Override  			public void onClick(View v) {  				// TODO Auto-generated method stub  				imgDemo.setImageResource(R.drawable.demo);  			}  		});  		btnDemo2.setOnClickListener(new OnClickListener() {  			  			@Override  			public void onClick(View v) {  				// TODO Auto-generated method stub  				imgDemo.setImageResource(R.drawable.demo2);  			}  		});  		  	}    	  }  

 


Download ví dụ

Ứng dụng này được phát triển bởi adt bundleandroid 4.2 sử dụng minimum sdk 11  and target sdk 21.


Kết quả khi chạy ứng dụng:

Sau đó Click vào Button "Xem hình 2":



Cập nhật công nghệ từ Youtube tại link: https://www.youtube.com/channel/UCOxeYcvZPGf-mGLYSl_1LuA/videos
Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com

About Học viện đào tạo trực tuyến

Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: dinhanhtuan68@gmail.com .
- Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng .
- Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu...
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG.
«
Next
Bài đăng Mới hơn
»
Previous
Bài đăng Cũ hơn