Android:以编程方式将UI元素添加到视图

Android:以编程方式将UI元素添加到视图,第1张

概述我的观点如下: package com.mycompany;import android.view.View;import java.util.concurrent.TimeUnit;import java.util.ArrayList;import android.content.Context;import android.graphics.Canvas;import andro 我的观点如下:

package com.mycompany;import androID.vIEw.VIEw;import java.util.concurrent.TimeUnit;import java.util.ArrayList;import androID.content.Context;import androID.graphics.Canvas;import androID.graphics.color;import androID.util.AttributeSet;import androID.graphics.Paint;import androID.graphics.Point;import androID.harDWare.Sensor;import androID.harDWare.SensorEvent;import androID.harDWare.SensorEventListener;import androID.harDWare.SensorManager;import androID.Widget.*;public class GameEngineVIEw extends VIEw implements SensorEventListener {    GameLoop gameloop;    String txt_acc;    float accY;    ArrayList<Point> BUGPath;    private SensorManager sensorManager;    private class GameLoop extends Thread {        private volatile boolean running = true;        public voID run() {            while (running) {                try {                    TimeUnit.MILliSECONDS.sleep(1);                    postInvalIDate();                    pause();                } catch (InterruptedException ex) {                    running = false;                }            }        }        public voID pause() {            running = false;        }        public voID start() {            running = true;            run();        }        public voID safeStop() {            running = false;            interrupt();        }    }    public voID unload() {        gameloop.safeStop();    }    public GameEngineVIEw(Context context,AttributeSet attrs,int defStyle) {        super(context,attrs,defStyle);        // Todo auto-generated constructor stub        init(context);    }    public GameEngineVIEw(Context context,AttributeSet attrs) {        super(context,attrs);        // Todo auto-generated constructor stub        init(context);    }    public GameEngineVIEw(Context context) {        super(context);        // Todo auto-generated constructor stub        init(context);    }    private voID init(Context context) {        txt_acc = "";        // Adding SENSOR        sensorManager=(SensorManager)context.getSystemService(Context.SENSOR_SERVICE);        // add Listener. The Listener will be HelloAndroID (this) class        sensorManager.registerListener(this,sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_norMAL);        // Adding UI Elements : How ?        button btn_camera = new button(context);        btn_camera.setLayoutParams(new linearLayout.LayoutParams(linearLayout.LayoutParams.FILL_PARENT,linearLayout.LayoutParams.FILL_PARENT));        btn_camera.setClickable(true);        btn_camera.setonClickListener(new OnClickListener() {            @OverrIDe            public voID onClick(VIEw v) {                System.out.println("clicked the camera.");            }        });        gameloop = new GameLoop();        gameloop.run();    }    @OverrIDe    protected voID onMeasure(int wIDthMeasureSpec,int heightmeasureSpec) {        // Todo auto-generated method stub        //super.onMeasure(wIDthMeasureSpec,heightmeasureSpec);        System.out.println("WIDth " + wIDthMeasureSpec);        setMeasuredDimension(wIDthMeasureSpec,heightmeasureSpec);    }    @OverrIDe    protected voID onDraw(Canvas canvas) {        // Todo auto-generated method stub        // super.onDraw(canvas);        Paint p = new Paint();        p.setcolor(color.WHITE);        p.setStyle(Paint.Style.FILL);        p.setAntiAlias(true);        p.setTextSize(30);        canvas.drawText("|[ " + txt_acc + " ]|",50,500,p);        gameloop.start();    }    public voID onAccuracyChanged(Sensor sensor,int accuracy){    }    public voID onSensorChanged(SensorEvent event){        if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){            //float x=event.values[0];            accY =event.values[1];            //float z=event.values[2];            txt_acc = "" + accY;        }    }}

我想在场景中添加一个button,但我不知道怎么做.谁能给我一些灯?

更新:这是我的活动:

public class MyActivity extends Activity {    private GameEngineVIEw gameEngine;    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        // add Game Engine        gameEngine = new GameEngineVIEw(this);        setContentVIEw(gameEngine);        gameEngine.requestFocus();    }}

而我正在关注这个tutorial.

解决方法
detailListVIEw = (linearLayout) findVIEwByID(R.ID.DetailslinearLayout); // Find the layout where you want to add button    button button = new button(this); button.setLayoutParams(new LayoutParams(VIEwGroup.LayoutParams.WRAP_CONTENT,VIEwGroup.LayoutParams.WRAP_CONTENT));    detailListVIEw.addVIEw(button);//add vIEw to add
总结

以上是内存溢出为你收集整理的Android:以编程方式将UI元素添加到视图全部内容,希望文章能够帮你解决Android:以编程方式将UI元素添加到视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1124352.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存