ピンチで画像を拡大/縮小する必要があるという要件が1つあります。ピンチ画像ビューのアンドロイドズームですか?
答えて
はしようと、資産フォルダに
置き、ピンチズームを取得するには、次の自分のイメージをして、このコードを提供することができ、この
【こちら】(import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.view.View;
public class MyImageView extends View {
private static final int INVALID_POINTER_ID = -1;
private Drawable mImage;
private float mPosX;
private float mPosY;
private float mLastTouchX;
private float mLastTouchY;
private int mActivePointerId = INVALID_POINTER_ID;
private ScaleGestureDetector mScaleDetector;
private float mScaleFactor = 1.f;
public MyImageView(Context context) {
this(context, null, 0);
mImage=act.getResources().getDrawable(context.getResources().getIdentifier("imagename", "drawable", "packagename"));
mImage.setBounds(0, 0, mImage.getIntrinsicWidth(), mImage.getIntrinsicHeight());
}
public MyImageView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public MyImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mScaleDetector = new ScaleGestureDetector(context, new ScaleListener());
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
// Let the ScaleGestureDetector inspect all events.
mScaleDetector.onTouchEvent(ev);
final int action = ev.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
final float x = ev.getX();
final float y = ev.getY();
mLastTouchX = x;
mLastTouchY = y;
mActivePointerId = ev.getPointerId(0);
break;
}
case MotionEvent.ACTION_MOVE: {
final int pointerIndex = ev.findPointerIndex(mActivePointerId);
final float x = ev.getX(pointerIndex);
final float y = ev.getY(pointerIndex);
// Only move if the ScaleGestureDetector isn't processing a gesture.
if (!mScaleDetector.isInProgress()) {
final float dx = x - mLastTouchX;
final float dy = y - mLastTouchY;
mPosX += dx;
mPosY += dy;
invalidate();
}
mLastTouchX = x;
mLastTouchY = y;
break;
}
case MotionEvent.ACTION_UP: {
mActivePointerId = INVALID_POINTER_ID;
break;
}
case MotionEvent.ACTION_CANCEL: {
mActivePointerId = INVALID_POINTER_ID;
break;
}
case MotionEvent.ACTION_POINTER_UP: {
final int pointerIndex = (ev.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK)
>> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
final int pointerId = ev.getPointerId(pointerIndex);
if (pointerId == mActivePointerId) {
// This was our active pointer going up. Choose a new
// active pointer and adjust accordingly.
final int newPointerIndex = pointerIndex == 0 ? 1 : 0;
mLastTouchX = ev.getX(newPointerIndex);
mLastTouchY = ev.getY(newPointerIndex);
mActivePointerId = ev.getPointerId(newPointerIndex);
}
break;
}
}
return true;
}
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
Log.d("DEBUG", "X: "+mPosX+" Y: "+mPosY);
canvas.translate(mPosX, mPosY);
canvas.scale(mScaleFactor, mScaleFactor);
mImage.draw(canvas);
canvas.restore();
}
private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
mScaleFactor *= detector.getScaleFactor();
// Don't let the object get too small or too large.
mScaleFactor = Math.max(0.1f, Math.min(mScaleFactor, 10.0f));
invalidate();
return true;
}
}
}
は、単にあなたが
String imageUrl = "file:///android_asset/abc.png";
WebView wv = (WebView) findViewById(R.id.yourwebview);
wv.getSettings().setBuiltInZoomControls(true);
wv.loadUrl(imageUrl);
「要求されたファイルが見つかりません」というエラーメッセージが表示されます。私のプロジェクトディレクトリには、私のイメージをコピーしたフォルダという名前の 'assets'があります。 –
ありがとう、今それは動作します。私は 'imageUrl =" file:///assets/abc.png ";"と誤解されました。プロジェクトディレクトリに 'assets'を表示している間になぜそれが' android_asset'なのか教えてください。 –
WebViewを追加するだけでピンチズームが可能ですか?その価値はありますか? – param
- 1. イオンのピンチと画像の拡大
- 2. Ionic 3画像ピンチとダブルタップzoom
- 3. 画像ビューの画像ビューxcode
- 4. javascriptでピンチとスケールの画像を検出する
- 5. 携帯端末の画像をピンチで拡大fabric.js
- 6. 画像ビューを1つの画像ビューから別の画像ビューに変更する
- 7. UIScrollviewに複数の画像があり、ピンチしてズームする
- 8. 複数の画像ビューから特定の画像ビューを特定する
- 9. カスタム画像ビューの画像にスケールテキスト
- 10. 画像ビューと画像アスペクト比の差
- 11. TableRowの画像ビュー
- 12. tabHostの画像ビュー
- 13. 画像ビューでインターネットから画像を読み込む機能
- 14. ピンチでqooxdooデスクトップの画面を拡大
- 15. ListViewのURLから画像ビューへの画像のロード
- 16. 「ピンチとズーム」を使用して画像を切り抜く
- 17. スウィフト3画像スライダボタン付画像ビュー
- 18. Android:Javaインターフェイス:画像ビュー
- 19. カードフリップ画像は、ビュー
- 20. アンドロイド:画面にフィットする画像ビューのストレッチ画像
- 21. DIsplay画像をローカルストレージからの画像ビュー
- 22. ユーザー選択による画像ビューでの画像の追加
- 23. 画像ビューでの画像の伸びを避ける方法
- 24. 画像ビューでギャラリー画像を設定する
- 25. 画像ビューでアニメーションGIF画像ファイルを再生する
- 26. 親ビューからの画像の削除
- 27. WP7二次画像をフルスクリーンで表示し、ズームしてピンチします
- 28. django:ビューから画像データを返す
- 29. 画像ビューで画像の背景を削除
- 30. 画像ビューではなく、画像ビューアへAndroidの
HTTP ://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2-part-6-implementing-the-pinch-zoom-gesture/1847?tag = mantle_skin; content ) あなたが行く! – iDroid