
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元素添加到视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)