Học lập trình Android Để sử dụng TextureView, tất cả những gì bạn cần làm là lấy SurfaceTexture.The SurfaceTexture của nó sau đó có thể được sử dụng để hiển thị nội dung.
![]() |
| Học lập trình Android |
Để làm điều này, bạn chỉ cần thực hiện nhanh một đối tượng của lớp này và thực hiện giao diện SurfaceTextureListener. Cú pháp của nó được đưa ra dưới đây
Thí dụ
Học lập trình Android Ví dụ dưới đây minh họa việc sử dụng lớp TextureView. Nó thùng một ứng dụng cơ bản cho phép bạn xem camera bên trong một giao diện kết cấu và thay đổi góc, hướng của nó vv
Để thử nghiệm với ví dụ này, bạn cần chạy trên thiết bị thực tế có camera.
Đây là nội dung của src / com.example.textureview / MainActivity.java .
Để chạy ứng dụng từ Android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ.
Trước khi bắt đầu ứng dụng của bạn, Android studio sẽ hiển thị cửa sổ sau để chọn tùy chọn mà bạn muốn chạy ứng dụng Android của mình.
Chọn thiết bị di động của bạn làm tùy chọn và sau đó kiểm tra thiết bị di động của bạn sẽ hiển thị màn hình sau đây. Màn hình này có thuộc tính alpha được đặt thành 0,5 và xoay được đặt thành 45.
Màn hình này có thuộc tính alpha được đặt là 1,5 và xoay được đặt thành 45 .
Màn hình này có thuộc tính alpha được đặt thành 1.0 và xoay được đặt thành 90 .
private TextureView myTexture; public class MainActivity extends Activity implements SurfaceTextureListener{ protected void onCreate(Bundle savedInstanceState) { myTexture = new TextureView(this); myTexture.setSurfaceTextureListener(this); setContentView(myTexture); } }Sau đó, những gì bạn cần làm là để ghi đè lên phương pháp của nó. Các phương thức được liệt kê như sau:
@Override public void onSurfaceTextureAvailable(SurfaceTexture arg0, int arg1, int arg2) { } @Override public boolean onSurfaceTextureDestroyed(SurfaceTexture arg0) { } @Override public void onSurfaceTextureSizeChanged(SurfaceTexture arg0, int arg1,int arg2) { } @Override public void onSurfaceTextureUpdated(SurfaceTexture arg0) { }Học lập trình Android Bất kỳ khung nhìn nào được hiển thị trong khung nhìn kết cấu đều có thể được xoay và thuộc tính alpha của nó có thể được điều chỉnh bằng cách sử dụng các phương thức setAlpha và setRotation . Cú pháp của nó được đưa ra dưới đây
myTexture.setAlpha(1.0f); myTexture.setRotation(90.0f);Ngoài các phương thức này, còn có các phương thức khác có sẵn trong lớp TextureView. Chúng được liệt kê dưới đây
| Sr.No | Phương pháp & mô tả |
|---|---|
| 1 | getSurfaceTexture () Phương thức này trả về SurfaceTexture được sử dụng bởi khung nhìn này. |
| 2 | getBitmap (chiều rộng int, chiều cao int) Phương thức này trả về Trả về một biểu diễn bitmap của nội dung của kết cấu bề mặt liên quan. |
| 3 | getTransform (Biến đổi ma trận) Phương thức này trả về biến đổi được kết hợp với khung nhìn kết cấu này. |
| 4 | isOpaque () Phương thức này cho biết Chế độ xem này có bị mờ hay không. |
| 5 | lockCanvas () Phương pháp này bắt đầu chỉnh sửa các pixel trên bề mặt |
| 6 | setOpaque (boolean opaque) Phương thức này cho biết liệu nội dung của TextureView này có bị mờ hay không. |
| 7 | setTransform (Biến đổi ma trận) Phương thức này đặt biến đổi để liên kết với chế độ xem kết cấu này. |
| số 8 | unlockCanvasAndPost (Canvas canvas) Phương pháp này kết thúc chỉnh sửa pixel trên bề mặt. |
Học lập trình Android Ví dụ dưới đây minh họa việc sử dụng lớp TextureView. Nó thùng một ứng dụng cơ bản cho phép bạn xem camera bên trong một giao diện kết cấu và thay đổi góc, hướng của nó vv
Để thử nghiệm với ví dụ này, bạn cần chạy trên thiết bị thực tế có camera.
| Các bước | Sự miêu tả |
|---|---|
| 1 | Bạn sẽ sử dụng android studio IDE để tạo một ứng dụng Android và đặt tên nó là TextureView theo một gói com.example.textureview. |
| 2 | Sửa đổi tệp src / MainActivity.java để thêm mã Hoạt động. |
| 3 | Sửa đổi tệp XML bố trí res / layout / activity_main.xml thêm bất kỳ thành phần GUI nào nếu cần. |
| 5 | Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả. |
package com.example.textureview; import java.io.IOException; import android.annotation.SuppressLint; import android.app.Activity; import android.graphics.SurfaceTexture; import android.hardware.Camera; import android.os.Bundle; import android.view.Gravity; import android.view.Menu; import android.view.TextureView; import android.view.TextureView.SurfaceTextureListener; import android.view.View; import android.widget.FrameLayout; public class MainActivity extends Activity implements SurfaceTextureListener { private TextureView myTexture; private Camera mCamera; @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTexture = new TextureView(this); myTexture.setSurfaceTextureListener(this); setContentView(myTexture); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @SuppressLint("NewApi") @Override public void onSurfaceTextureAvailable(SurfaceTexture arg0, int arg1, int arg2) { mCamera = Camera.open(); Camera.Size previewSize = mCamera.getParameters().getPreviewSize(); myTexture.setLayoutParams(new FrameLayout.LayoutParams( previewSize.width, previewSize.height, Gravity.CENTER)); try { mCamera.setPreviewTexture(arg0); } catch (IOException t) { } mCamera.startPreview(); myTexture.setAlpha(1.0f); myTexture.setRotation(90.0f); } @Override public boolean onSurfaceTextureDestroyed(SurfaceTexture arg0) { mCamera.stopPreview(); mCamera.release(); return true; } @Override public void onSurfaceTextureSizeChanged(SurfaceTexture arg0, int arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onSurfaceTextureUpdated(SurfaceTexture arg0) { // TODO Auto-generated method stub } }Đây là nội dung của activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <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=".MainActivity" > <TextureView android:id="@+id/textureView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> </RelativeLayout>Đây là nội dung mặc định của AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.textureview" > <uses-permission android:name="android.permission.CAMERA"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.textureview.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>Hãy thử chạy ứng dụng TextureView của bạn. Tôi cho rằng bạn đã kết nối thiết bị Android Mobile thực tế với máy tính của mình.
Để chạy ứng dụng từ Android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ.
Trước khi bắt đầu ứng dụng của bạn, Android studio sẽ hiển thị cửa sổ sau để chọn tùy chọn mà bạn muốn chạy ứng dụng Android của mình.
Chọn thiết bị di động của bạn làm tùy chọn và sau đó kiểm tra thiết bị di động của bạn sẽ hiển thị màn hình sau đây. Màn hình này có thuộc tính alpha được đặt thành 0,5 và xoay được đặt thành 45.
Màn hình này có thuộc tính alpha được đặt là 1,5 và xoay được đặt thành 45 .
Màn hình này có thuộc tính alpha được đặt thành 1.0 và xoay được đặt thành 90 .

Không có nhận xét nào:
Đăng nhận xét