開始値と終了値を定義し、指定された変数値を表示するポインターを持つ単純なゲージ ビューが必要です。
したがって、速度計のように特定の値を表示できます。たとえば、textView の値が 1300 の場合、textview の横に、このようなカスタム メーター ビュー アニメーションが必要です。
可能です?既存のサンプルコードはありますか?
開始値と終了値を定義し、指定された変数値を表示するポインターを持つ単純なゲージ ビューが必要です。
したがって、速度計のように特定の値を表示できます。たとえば、textView の値が 1300 の場合、textview の横に、このようなカスタム メーター ビュー アニメーションが必要です。
可能です?既存のサンプルコードはありますか?
私が見つけた別のものはEvelina Vrabie's blog
、それを使用して完璧に機能しました!
を見てくださいEvelina Vrabie's GitHub
。ゲージ ライブラリと対話するいくつかのサンプルがあります。
オーナーの Evelina Vrabie に感謝します。
ただし、Android デバイスの XHDPI/いくつかのバージョン (4 以上) では動作しません。問題は、ゲージ ビューのテキストです。
あなたが推奨した他のすべてのゲージにはバグがあり、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() {}
};
}
これにより、針がインスタンス化され、ランダムな値に移動してアニメーション化されます。
遅い回答が役立つかどうかはわかりません。ゲージはアンドロイドのウィジェットとして提供されていないため、ゲージを使用してデータを視覚化したいという同じ状況にもなりましたが、愛好家として、インターネットのさまざまなリンクから見つけることができる上記のようなライブラリを探しましたが、非常に役に立ちました (すばらしい作者のおかげです..) 特定の状況で視覚化するのが難しいと感じたので、アプリで行った別の解決策は、JavaScript ゲージを Android アプリケーションに統合することです。次の手順でそれを行うことができます
これは、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 クラスです
親切にすべてを読んでください、訂正は大歓迎です..!!
これを使用してください:サンプルプロジェクト
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" />