私は単純な描画アプリケーションを開発していますが、キャンバスに触れるときに目に見えるポインタを追加することが可能かどうか疑問に思っていましたか?私が意味することは、PC上のマウスインジケータに似たものです。その理由は - 消しゴムを使用すると、正確にあなたのタッチが登録されている場所とポインタで表示されていないので、(特にペンが非常に正確であるため、指のタッチを使用すると)役立ちます。私は他の似たような話題で試しましたが、彼らの誰もその質問に答えませんでした。アプリにタッチポインタを追加するには?
答えて
このPOSから撮影:ショーのタッチを無効にするには
Settings.System.putInt(context.getContentResolver(),
"show_touches", 1);
•: How to programmatically enable "show touches" option in Android?
•ショーのタッチを可能に
Settings.System.putInt(context.getContentResolver(),
"show_touches", 0);
はあなたにandroid.permission.WRITE_SETTINGSを追加することを忘れないでくださいマニフェスト。
EDIT:
ここではView.OnTouchListenerを実装し、複数の描画モードを定義DrawView.javaです。しかしそれは指標が欠けている。
DrawViewのsetListener内でonStartDrawingメソッドをオーバーライドする:インジケータを表示するかどうか、およびDrawViewの現在のモード(ペン、消しゴムなど)に応じてスタイルを設定するかどうかを決定できます。インジケータが表示されている場合は移動し、描画が終了すると非表示にします。ここ
mDrawView.setOnDrawViewListener(new DrawView.OnDrawViewListener() {
@Override public void onStartDrawing() {
canUndoRedo();
// decide whether or not to show an
// indicator and style it depending on
// mDrawView's attributes and current drawing mode
setIndicator(mDrawView.getDrawingMode(),mDrawView.getDrawWidth());
}
@Override
public void onMove(MotionEvent motionEvent) {
if(isIndicatorVisible){
indicatorView.animate()
.x(motionEvent.getX())
.y(motionEvent.getY())
.setDuration(0)
.start();
}
}
@Override public void onEndDrawing() {
canUndoRedo();
//hide indicator here
if (isIndicatorVisible){
indicatorView.setVisibility(View.GONE);
isIndicatorVisible = false;
}
}
iはDrawView.javaに追加編集です:
定義された新しいインターフェイスメソッドのボイドonMove(MotionEvent motionEvent)
onToch内に新しいメソッドと呼ばれるpublic interface OnDrawViewListener {
void onStartDrawing();
void onEndDrawing();
void onClearDrawing();
void onRequestText();
void onMove(MotionEvent motionEvent); // added this method
}
コードをチェック:
ここに設定するインジケータの方法:
private void setIndicator(DrawingMode drawingMode, int drawWidth) {
if (drawingMode == DrawingMode.ERASER){
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(drawWidth, drawWidth);
indicatorView.setLayoutParams(params);
GradientDrawable border = new GradientDrawable();
border.setStroke(1, 0xFF000000); //black border with full opacity
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
indicatorView.setBackgroundDrawable(border);
} else {
indicatorView.setBackground(border);
}
indicatorView.setVisibility(View.VISIBLE);
isIndicatorVisible = true;
}
}
私は以前この投稿を見てきましたが、これは私が必要とするものではありませんが、私のコードで試してみたことは間違いありません。これは回避策としてのみ機能します。なぜなら、私が触れる場所の輪郭が得られるからです。私が頼んだのは、サイズと同じだけ描画/消去するポインタです(描画/消去はすでにカバーされています)。私はそれをキャンバス上に置いておきたいのです。なぜならツールボックスや他の場所では役に立たないからです。 – DiTi
もう1つの問題は、これがAPI <23のみで機能するように見えることです。それ以降のバージョンではプライベート設定の変更が許可されないため、質問は開いたままです。 – DiTi
私は答えを編集..コードはこのgithubプロジェクトに基づいています:https://github.com/ByoxCode/DrawView ..私は変更を私は作ったし、それは正常に動作している..幸運 – msdev16
- 1. UIActivityViewControllerでアプリを追加するには
- 2. iOS 9アプリに「クイックアクション」を追加する
- 3. アプリにAdSenseを追加する方法
- 4. アプリにタイマーを追加する方法!
- 5. reactjsアプリにサービスワーカーを追加する
- 6. 私のアプリにユーザースクリプトエンジンを追加する
- 7. Facebookにアプリを追加する
- 8. iPhoneアプリにSettings.bundleを追加する
- 9. 設定ページをアプリに追加する
- 10. AndroidアプリにFirebaseを追加する
- 11. ベータテストにユーザーを追加するiphoneアプリ
- 12. Open Feintパワードゲームにアプリを追加する
- 13. Chromeアプリのタイトルバーに追加
- 14. アプリを公開した後にアプリを追加する
- 15. Rails 3.1アプリにマウント可能なエンジンを追加するには?
- 16. フロントページの「ブックマーク」にfacebookアプリを追加するには
- 17. アプリの起動時にPull To Refreshを追加するには?
- 18. アンドロイド描画アプリにアンドゥ/リドゥ機能を追加するには?
- 19. botframeworkアプリにユーザー認証を追加するには?
- 20. Facebookページにアプリを追加するには?
- 21. 通知センターにあなたのアプリを追加するには?
- 22. docker-hostedアプリにBlueMix Monitoring and Analyticsを追加するには?
- 23. iphoneアプリからGoogleカレンダーに予定を追加するには?
- 24. 私のアプリにPLCrashReporterを追加するには?
- 25. Expressアプリに反応を追加するには?
- 26. 私のファンページに私のFacebookのアプリを追加するには?
- 27. OS Xのアプリに「情報」アクションを追加するには?
- 28. 私のアプリに音楽プレーヤーを追加するには?
- 29. iPhoneアプリにtwitter timelineを追加するには?
- 30. 既存のwp7ベータ版アプリにテスターを追加するには
答えははいです。 – GurV
タイトル質問の答えはどうですか? – DiTi
あなたは「私は試しました」と言った。私たちに教えてください。 – GurV