21

開始値と終了値を定義し、指定された変数値を表示するポインターを持つ単純なゲージ ビューが必要です。

ここに画像の説明を入力

したがって、速度計のように特定の値を表示できます。たとえば、textView の値が 1300 の場合、textview の横に、このようなカスタム メーター ビュー アニメーションが必要です。

可能です?既存のサンプルコードはありますか?

4

7 に答える 7

21

私が見つけた別のものはEvelina Vrabie's blog、それを使用して完璧に機能しました!

を見てくださいEvelina Vrabie's GitHub。ゲージ ライブラリと対話するいくつかのサンプルがあります。

オーナーの Evelina Vrabie に感謝します。


ここに画像の説明を入力

ただし、Android デバイスの XHDPI/いくつかのバージョン (4 以上) では動作しません。問題は、ゲージ ビューのテキストです。

于 2013-01-22T19:49:07.413 に答える
13

あなたが推奨した他のすべてのゲージにはバグがあり、Kitkat と Lollipop では正常に動作しません。また、ここには Android Studio と gradle に適したライブラリはありません。

Gradle で使用できる Lollipop 用に更新された最新の git リポジトリは次のとおりです。

ここに画像の説明を入力

プロジェクトにライブラリを含めたら、gaugelibrary をアクティビティの xml レイアウトに追加します。

<io.sule.gaugelibrary.GaugeView
 android:id="@+id/gauge_view"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="#ffffff"
 gauge:showOuterShadow="false"
 gauge:showOuterRim="false"
 gauge:showInnerRim="false"
 gauge:needleWidth="0.010"
 gauge:needleHeight="0.40"
 gauge:scaleStartValue="0"
 gauge:scaleEndValue="100"
 />

これは、針のない静的ゲージを示します。ランダムなアニメーションで針をインスタンス化するには、アクティビティ クラス ファイルでそれを行う必要があります。ここでそれがどのように行われるかを見てください:

package io.sule.testapplication;

import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.Menu;
import android.view.MenuItem;

import java.util.Random;

import io.sule.gaugelibrary.GaugeView;

public class MainActivity extends Activity {
   private GaugeView mGaugeView;
   private final Random RAND = new Random();

   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

      mGaugeView = (GaugeView) findViewById(R.id.gauge_view);
      mTimer.start();
   }


   private final CountDownTimer mTimer = new CountDownTimer(30000, 1000) {

      @Override
      public void onTick(final long millisUntilFinished) {
         mGaugeView.setTargetValue(RAND.nextInt(101));
      }

      @Override
      public void onFinish() {}
   };
}

これにより、針がインスタンス化され、ランダムな値に移動してアニメーション化されます。

于 2015-04-12T23:13:11.993 に答える
2

遅い回答が役立つかどうかはわかりません。ゲージはアンドロイドのウィジェットとして提供されていないため、ゲージを使用してデータを視覚化したいという同じ状況にもなりましたが、愛好家として、インターネットのさまざまなリンクから見つけることができる上記のようなライブラリを探しましたが、非常に役に立ちました (すばらしい作者のおかげです..) 特定の状況で視覚化するのが難しいと感じたので、アプリで行った別の解決策は、JavaScript ゲージを Android アプリケーションに統合することです。次の手順でそれを行うことができます

  1. プロジェクトにアセット フォルダーを作成します。このリンクを参照してください。アセット フォルダーについて知らない人がいる場合は、アセット フォルダーの作成方法が表示されます。
  2. 次の 1 つは、たとえば、ヘッダー、ゲージの数など、ページがどのように見えるかについての html ページを設計し、それをフォルダー アセットに配置することです。
  3. This is one site or you can browse other sites and take something you like...!! のようなゲージを提供する多くのサイトがあります。.js ファイルを含むすべてを取得し、アセット フォルダーに配置します。
  4. Android は、「WebViewClient」と呼ばれる webiview を処理するためのクラスを提供します。これを参照して、インターネットで詳細を知ることができます。
  5. これは、webview コンテンツを表示するためのサンプル コードです。

    web = (WebView) findViewById(R.id.webview01); progressBar = (ProgressBar) findViewById(R.id.progressBar1);

    web.setWebViewClient(new myWebClient());
    
      web.getSettings().setJavaScriptEnabled(true);
                web.post(new Runnable() {
                    @Override
                    public void run() {
                        web.loadUrl("file:///android_asset/fonts/guage.html");
                    }
                });
    

htmlとjavascriptをロードするための上記。

 public class myWebClient extends WebViewClient
{
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // TODO Auto-generated method stub
        super.onPageStarted(view, url, favicon);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // TODO Auto-generated method stub
        progressBar.setVisibility(View.VISIBLE);
        view.loadUrl(url);
        return true;

    }

    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);

        progressBar.setVisibility(View.GONE);
    }
}

これは webview クラスです

  1. アクティビティから html ページにデータを送信することもできます。このリンクを参照してください。

親切にすべてを読んでください、訂正は大歓迎です..!!

于 2017-01-09T05:56:04.090 に答える
0

これを使用してください:サンプルプロジェクト

Gradle プロジェクトに簡単に追加できます。

repositories {
    maven {
        url 'https://www.jitpack.io'
    }
}

dependencies {
implementation 'com.jignesh13.speedometer:speedometer:1.0.0'
}

ビューは XML で宣言されます。

    <com.jignesh13.speedometer.SpeedoMeterView
        android:id="@+id/speedometerview"
        android:layout_width="250dp"
        android:layout_height="250dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.453"
        app:layout_constraintStart_toStartOf="parent"
        app:backimage="@android:color/black"
        app:needlecolor="#fff"
        app:removeborder="false"
        app:linecolor="#fff"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.079" />
于 2019-08-14T09:29:56.513 に答える