Tìm hiểu TextureView trong Android

p_erudite

New Member
Cú pháp của nó được đưa ra dưới đây khi bạn học lap trinh android :
Mã:
private TextureView myTexture;[/SIZE][/FONT]
[SIZE=16px][FONT=TimesNewRoman]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 đè phương thức của nó. Các phương pháp được liệt kê như sau:

Mã:
@Override[/SIZE][/FONT]
[SIZE=16px][FONT=TimesNewRoman]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) {
}

Bất kỳ mọi view sẽ được hiển thị trong giao diện kết cấu có thể được luân chuyển và thuộc tính Alpha có thể được điều chỉnh bằng setAlpha và phương pháp setRotation. Cú pháp của nó được đưa ra dưới đây -


Mã:
myTexture.setAlpha(1.0f);[/SIZE][/FONT]
[SIZE=16px][FONT=TimesNewRoman]myTexture.setRotation(90.0f);

Ngoài những phương pháp này, có những phương pháp khác có sẵn trong lớp TextureView. Chúng được liệt kê dưới đây -


STT Phương pháp và mô tả
1 getSurfaceTexture()
Phương pháp này trả về SurfaceTexture sử dụng bởi quan điểm này.
2 getBitmap(int width, int height)
Phương thức này trả Trả về một đại diện Bitmap về nội dung của các kết cấu bề mặt có liên quan.
3 getTransform(Matrix transform)
Phương thức này trả các biến đổi có liên quan với điểm kết cấu này.
4 isOpaque()
Phương pháp này chỉ ra cho dù Xem này là đục.
5 lockCanvas()
Phương pháp này bắt đầu chỉnh sửa các điểm ảnh trên bề mặt
6 setOpaque(boolean opaque)
Phương pháp này chỉ ra cho dù nội dung của TextureView này là đục.
7 setTransform(Matrix transform)
Phương pháp này đặt ra các biến đổi để kết hợp với điểm kết cấu này.
8 unlockCanvasAndPost(Canvas canvas)
Hoàn thiện phương pháp này chỉnh sửa pixel trên bề mặt.

Ví dụ

Ví dụ dưới đây trình bày cách sử dụng các lớp TextureView. Nó thùng một ứng dụng cơ bản cho phép bạn xem ảnh bên trong một cái nhìn kết cấu và thay đổi góc của nó, định hướng vv

Để thử nghiệm với ví dụ này, bạn cần phải chạy trên một thiết bị thực tế trên mà máy ảnh có mặt.

Các bước Mô tả
1 Bạn sẽ sử dụng Android Studio IDE để tạo ra một ứng dụng Android và tên nó là TextureView dưới một gói com.example.textureview. Trong khi tạo dự án này, chắc chắn bạn Target SDK và biên dịch với các phiên bản mới nhất của Android SDK sử dụng các cấp cao hơn của API.
2 Sửa đổi file src/MainActivity.java thêm mã Hoạt động.
3 Sửa đổi bố trí tập tin XML res/layout/activity_main.xml thêm bất kỳ thành phần giao diện nếu cần thiết.
4 Chạy ứng dụng và chọn một thiết bị Android chạy và cài đặt các ứng dụng trên nó và kiểm tra kết quả.


Dưới đây là nội dung của src/com.example.textureview/MainActivity.java.

Mã:
package com.example.textureview;[/SIZE][/FONT]
[SIZE=16px][FONT=TimesNewRoman]
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
}
}


Nội dung của file activity_main.xml

Mã:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"[/SIZE][/FONT]
[SIZE=16px][FONT=TimesNewRoman]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>


Nội dung của file AndroidManifest.xml

Mã:
<?xml version="1.0" encoding="utf-8"?>[/SIZE][/FONT]
[SIZE=16px][FONT=TimesNewRoman]<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.textureview"
android:versionCode="1"
android:versionName="1.0" >

<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>




Chọn thiết bị di động của bạn như là một lựa chọn và sau đó kiểm tra thiết bị di động của bạn sẽ hiển thị sau màn hình. Màn hình này có thuộc tính Alpha đặt là 0,5 và luân chuyển thiết lập để 45.


Màn hình này có thuộc tính Alpha đặt là 1,5 và luân chuyển thiết lập để 45.


Màn hình này có thuộc tính Alpha đặt là 1.0 và luân chuyển thiết lập để 90.
 
Загрузка...

Members online

No members online now.

Forum statistics

Threads
264,259
Bài viết
339,988
Thành viên
40,191
Thành viên mới nhất
smileofyou
Chuyển nhà trọn gói | Xe tải chở hàng giá rẻ | thi công bảng hiệu hộp đèn quảng cáo | Chuyển nhà trọn gói Bình Dương | Thi công bảng hiệu hộp đèn | thi công nhôm kính bình dương | thi công quán cafe trọn gói | chuyển nhà trọn gói Bình Dương | Tỏi Lý Sơn
Top