[過去ログ] Android Studio 2©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
796: デフォルトの名無しさん [sage] 2018/08/11(土) 07:32:43 ID:aXFnH1dm(1/3) AAS
>>793793(3): デフォルトの名無しさん [sage] 2018/08/10(金) 17:18:37 ID:GW9IT4yi(1) AAS
public class MainActivity extends AppCompatActivity implements SensorEventListener {
…
@Override
public void onSensorChanged(SensorEvent event) {
float sensorx;
if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){
sensorX=event.values[0];
}
}
class MyView extends View{
private Paint paint;
public MyView(Context context){
super(context);
paint=new Paint();}
@Override
protected void onDraw(Canvas canvas){
canvas.drawLine(550,1000,550,@@,paint);
}
}
SensorChangedで取得したx軸の値(sensorX)を、canvas.drawLineに渡したいのですが、うまく渡せません。
実現したいアプリは、x軸の傾きを直線で表現したい、です。
drawLineの座標にある@@には
X座標 : Math.sin(Math.toRadians((sensorX/9.8)*90))+550
Y座標 : Math.cos(Math.toRadians((sensorX/9.8)*90))-1000
と考えていますが、これをSensorChangedで計算して、MyViewのインスタンスメソッドonDrawに渡したいのですが、どうやって渡したらいいのでしょうか?
渡すというのは??
onCreateで
mMyView = new MyView(this);
serContentView(mMyView);
onSensorChangedで
mMyView.drawSensor(@@)
MyViewクラス内でdrawSensorメソッドを定義
渡されたX座標をmSensorXセットしてからinvalidate
onDrawは
canvas.drawLine(550,1000,550,mSensorX,paint);
座標値が妥当かどうか等の細かいところまでは考えてない
797: デフォルトの名無しさん [sage] 2018/08/11(土) 07:41:20 ID:aXFnH1dm(2/3) AAS
おっと、このままだとセンサーイベントのたびに必ずドローが走ってバッテリー効率わるいからうまく60fpsぐらいになるようイベント間隔を調整してくれ
798: デフォルトの名無しさん [sage] 2018/08/11(土) 07:47:39 ID:aXFnH1dm(3/3) AAS
つーか、60fpsはシステムが調整してくれてんだった、バンバンinvalidateしていいよ、連投スマン
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.044s