ProgressBar不起作用 - Android

时间:2018-05-05 06:55:30

标签: android accelerometer android-progressbar

我有一个代码,其中加速度计的值应与进度条的进度相对应。我在下面附上了我的代码。即使我使用setProgress,进度条也会显示正常的“缓冲事物”,并不反映我希望它显示的进度。

我的java代码:

//package comes here

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.widget.ProgressBar;
import android.widget.TextView;


public class AccelerometerControl extends AppCompatActivity implements SensorEventListener {

    private TextView xText, yText, zText;
    private Sensor mySensor;
    private SensorManager SM;
    ProgressBar fd,bk,rt,lt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_accelerometer_control);
        SM = (SensorManager)getSystemService(SENSOR_SERVICE);
        mySensor = SM.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        SM.registerListener(this, mySensor, SensorManager.SENSOR_DELAY_NORMAL);
        xText = (TextView)findViewById(R.id.textView1);
        yText = (TextView)findViewById(R.id.textView2);
        zText = (TextView)findViewById(R.id.textView3);
        fd = (ProgressBar) findViewById(R.id.up_magnitude);
        bk = (ProgressBar) findViewById(R.id.down_magnitude);
        rt = (ProgressBar) findViewById(R.id.right_magnitude);
        lt = (ProgressBar) findViewById(R.id.left_magnitude);


    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        xText.setText("X: " + event.values[0]);
        yText.setText("Y: " + event.values[1]);
        zText.setText("Z: " + event.values[2]);

        float x=event.values[0]*16.67f;
        float y=event.values[1]*16.67f;
        float z=event.values[2]*16.67f;
        int percentX = (int) x;
        int percentY = (int) y;
        fd.setProgress(percentX);
        rt.setProgress(percentY);

    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }

}

我的布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ControllerActivity">

    <ImageView
        android:id="@+id/up"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_above="@+id/left"
        android:layout_centerHorizontal="true"
        app:srcCompat="@drawable/up" />

    <ImageView
        android:id="@+id/left"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/up"
        android:layout_toStartOf="@+id/up"
        app:srcCompat="@drawable/left" />

    <ImageView
        android:id="@+id/down"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_below="@+id/left"
        android:layout_centerHorizontal="true"
        app:srcCompat="@drawable/down" />

    <ImageView
        android:id="@+id/right"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_centerVertical="true"
        android:layout_toEndOf="@+id/up"
        android:layout_toRightOf="@+id/up"
        app:srcCompat="@drawable/right" />

    <TextView
        android:id="@+id/BTID"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="44dp"
        android:text="Bluetooth ID" />

    <ProgressBar
        android:id="@+id/right_magnitude"
        style="?android:attr/progressBarStyle"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_centerVertical="true"
        android:layout_toEndOf="@+id/up"
        android:layout_toRightOf="@+id/up"
        android:indeterminate="false"/>

    <ProgressBar
        android:id="@+id/left_magnitude"
        style="?android:attr/progressBarStyle"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/up"
        android:layout_toStartOf="@+id/up"
        android:indeterminate="false"/>

    <ProgressBar
        android:id="@+id/up_magnitude"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_centerVertical="true"
        android:layout_above="@+id/left"
        android:layout_centerHorizontal="true"
        android:indeterminate="false"
        />

    <ProgressBar
        android:id="@+id/down_magnitude"
        style="?android:attr/progressBarStyle"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_below="@+id/left"
        android:layout_centerHorizontal="true"
        android:indeterminate="false"/>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentTop="true"
        android:layout_marginEnd="20dp"
        android:layout_marginTop="22dp"
        android:text="X axis accel" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignStart="@+id/textView1"
        android:layout_marginTop="58dp"
        android:text="Y axis accel" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignStart="@+id/textView2"
        android:layout_marginTop="92dp"
        android:text="Z axis accel" />


</RelativeLayout>

(我将在进度条(进度圈)工作后进行更改。)

1 个答案:

答案 0 :(得分:0)

根据您的说明,您似乎无法正确设置进度条样式。添加style="@style/Widget.AppCompat.ProgressBar.Horizontal"更新所有进度栏布局,如下所示:

<ProgressBar
        android:id="@+id/up_magnitude"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ...
        style="@style/Widget.AppCompat.ProgressBar.Horizontal"
/>

上面的代码将创建水平进度条。如果要创建循环进度条,可以按照此SO

进行操作