ユーザー インターフェイスとして 2D マップの代わりにカメラの画像を使用する位置情報ベースのアプリケーションを構築しています。
そのビューで、描画可能な画像を描きたいです。ポイント間の距離が変化すると、イメージ ドローアブルも変化します。
すべてが正常に機能しますが、最初のものだけです。イメージを変更する必要がある場合、アプリケーションがハングします。しかし、カメラによってキャプチャされた画像は、まだ正常な方法です。
onCreate
これは、ドローアブルを初期化するための私のコードです:
arrow = (ImageView)findViewById(R.id.arah);
arrow.setVisibility(0);
res = getResources();
lurus = res.getDrawable(R.drawable.arahlurus);
kanan = res.getDrawable(R.drawable.arahkanan);
kiri = res.getDrawable(R.drawable.arahkiri);
putar = res.getDrawable(R.drawable.arahputar);
これはメソッド onLocationChanged() での私のコードです:
arrow.setVisibility(0);
Location pointLocation = TEMP_LOCATION.get(check);
float distance = location.distanceTo(pointLocation);
int dist = (int)Math.round(distance);
//stepNext.setText("" + distance + " Meter");
//String chek = TEMP_POINT.get(check).toString();;
if (dist / 4 == 0){
stepNext.setText("" + dist + "meter");
Toast.makeText(ARrazerNav.this, "Jarak Dengan Checkpoint: " +dist, Toast.LENGTH_SHORT).show();
}
else if (dist < 15){
arrow.setVisibility(0);
//speakWords(TEMP_NAME.get(check).toString());
check++;
}
else if (dist >= 10 && dist <= 27){
arrow.setVisibility(1);
if(checkOrientation == 1){
if (TEMP_POINT.get(check) == 1){
arrow.setImageDrawable(lurus);
}
else if (TEMP_POINT.get(check) == 2){
arrow.setImageDrawable(kanan);
}
else if(TEMP_POINT.get(check) == 3){
arrow.setImageDrawable(putar);
}
else{
arrow.setImageDrawable(kiri);
}
}else{
if (TEMP_POINT.get(check) == 1){
arrow.setImageDrawable(kiri);
}
else if (TEMP_POINT.get(check) == 2){
arrow.setImageDrawable(lurus);
}
else if(TEMP_POINT.get(check) == 3){
arrow.setImageDrawable(kanan);
}
else{
arrow.setImageDrawable(putar);
}
}
}