gpt4 book ai didi

java - 表面 View 示例

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:29:25 26 4
gpt4 key购买 nike

所以我花了大约两天的时间来尝试获得一个正常工作的 SurfaceView。我在网上关注的教程即使严格遵守也无法正常工作。我通常会看到一个全黑的屏幕。

为了帮助自学它是如何工作的,我需要一个有效的 SurfaceView 程序。

我正在寻找一个在单独的类中生成 SurfaceView 的程序。如果有人能够发布一个 SurfaceView 程序的完整代码(XML 和 Java),我将不胜感激,该程序可以简单地将整个屏幕变为红色或白色。

感谢您的帮助!

(任何解释以及代码都会很棒!)

最佳答案

试试这个链接

Ansroid SurfaceView Example

我遵循了本教程示例。它工作正常。

编辑

SurfaceView 的简单代码

布局xml

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

<SurfaceView
android:id="@+id/surfaceView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>

Java Activity 代码

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.SurfaceView;
import android.view.ViewGroup;
import android.view.WindowManager;

public class Main2Activity extends AppCompatActivity{


SurfaceView surfaceView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);

surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
//Method for making the activity full screen
//With SurfaceView
makeItFullScreen();
}

private void makeItFullScreen(){
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getSupportActionBar().hide();
//Changing SurfaceView background color
surfaceView.setBackgroundColor(Color.RED);

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

ViewGroup.LayoutParams videoLayoutParams = surfaceView.getLayoutParams();
videoLayoutParams.width = displayMetrics.widthPixels;
videoLayoutParams.height = displayMetrics.heightPixels;

ViewGroup.LayoutParams videoParams = surfaceView.getLayoutParams();
videoParams.width = displayMetrics.widthPixels;
videoParams.height = displayMetrics.heightPixels;
}

}

编辑2

如果您使用自定义 SurfaceView xml 将是这样的..

<customClassPackageName.CustomSurfaceViewClassName
android:id="@+id/surfaceView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />

Activity 中的代码

  .......
customClassPackageName.CustomSurfaceViewClassName surfaceView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);

surfaceView = (customClassPackageName.CustomSurfaceViewClassName) findViewById(R.id.surfaceView);
.......

关于java - 表面 View 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47432818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com