android 使用ONPENGL ES 绘制三角形 (二)(索引方法)

本文介绍了如何使用Android中的OpenGL ES通过索引法绘制三角形。通过在MyActivity.java中设置监听器并重写onPause方法,以及在MySurfaceView.java中配置渲染器、设置渲染模式、背面裁剪和平滑着色等功能,实现了屏幕触控交互和场景物体旋转。在渲染器内部,详细阐述了onDrawFrame方法中关于背面裁剪、平滑着色的实现,以及屏幕方向变化时的处理策略。
摘要由CSDN通过智能技术生成

     

      索引法是指通过调用gl。glDrawElements()方法来绘制何种基本几何图形。

      直接撸代码:

      1.编写MyActiviity.java ,具体显示流程如下:

          * 先引用相关包,并声明了MySurfaceView。

          *  为布局文件的按钮添加监听器列,分别用于监听三个不同的按钮。

          *  重写onpause方法,并同时挂起或回复MySufaceView试图

        

        MyActivity.java:

package com.scout.eeeeeee;

import android.app.Activity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.LinearLayout;
import android.widget.ToggleButton;

public class MyActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    private MySurfaceView mSurfaceView;                                                    //声明MySurfaceView对象

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);                                                //继承父类方法
        setContentView(R.layout.main);                                                    //设置布局文件
        mSurfaceView = new MySurfaceView(this);                                            //创建MySurfaceView对象
        mSurfaceView.requestFocus();                                                    //获取焦点
        mSurfaceView.setFocusableInTouchMode(true);                                        //设置为可触控
        LinearLayout ll = (LinearLayout) this.findViewById(R.id.main_liner);                //获得线性布局的引用
        ll.addView(mSurfaceView);//
        ToggleButton tb01 = (ToggleButton) this.findViewById(R.id.ToggleButton01);            //获得第一个开关按钮的引用
        tb01.setOnCheckedChangeListener(new FirstListener());                            //为开关按钮注册监听器
        ToggleButton tb02 = (ToggleButton) this.findViewById(R.id.ToggleButton02);            //获得第二个开关按钮的引用
        tb02.setOnCheckedChangeListener(new SecondListener());//
        ToggleButton tb03 = (ToggleButton) this.findViewById(R.id.ToggleButton03);            //获得第三个开关按钮的引用
        tb03.setOnCheckedChangeListener(new ThirdListener());//
    }

    class FirstListener implements OnCheckedChangeListener {                                //声明第一个按钮的监听器
        @Override
        public void onCheckedChanged(CompoundButton buttonView,                            //重写方法
                                     boolean isChecked) {
            // TODO Auto-generated method stub
            mSurfaceView.setBackFlag(!mSurfaceView.isBackFlag());                        //实现功能
        }
    }

    class SecondListener implements OnCheckedChangeListener {                            //声明第二个按钮的监听器
        @Override
        public void onCheckedChanged(CompoundButton buttonView,                            //重写方法
                                     boolean isChecked) {
            // TODO Auto-generated method stub
            mSurfaceView.setSmoothFlag(!mSurfaceView.isSmoothFlag());                    //实现功能
        }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值