그림의 드래그 효과 구현
가까스로 속임수를 써서 해결했어, 허허, 나눠봐.
package com.nico;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
public class DragActivity extends Activity {
ImageView imgview;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ImageView img = (ImageView) findViewById(R.id.img);
final WindowManager wm = this.getWindowManager();
final WindowManager.LayoutParams wlayout = new WindowManager.LayoutParams();
wlayout.gravity = Gravity.TOP;
wlayout.x = 0;
wlayout.y = 0;
wlayout.height = WindowManager.LayoutParams.WRAP_CONTENT;
wlayout.width = WindowManager.LayoutParams.WRAP_CONTENT;
wlayout.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
wlayout.format = PixelFormat.TRANSLUCENT;
wlayout.windowAnimations = 0;
img.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int act = event.getAction();
int rawx = (int) event.getRawX()-v.getRight()-v.getWidth();
int rawy = (int) event.getRawY();
wlayout.x = rawx;
wlayout.y = rawy;
switch (act) {
case MotionEvent.ACTION_DOWN:
ImageView newimg = new ImageView(DragActivity.this);
img.setDrawingCacheEnabled(true);
Bitmap bt = img.getDrawingCache();
newimg.setImageBitmap(bt);
imgview = newimg;
wm.addView(imgview, wlayout);
imgview.setVisibility(View.VISIBLE);
break;
case MotionEvent.ACTION_MOVE:
// wlayout.x = rawx;
// wlayout.y = rawy;
wm.updateViewLayout(imgview, wlayout);
break;
case MotionEvent.ACTION_UP:
wm.removeView(imgview);
if (imgview != null) {
imgview.destroyDrawingCache();
imgview = null;
}
break;
}
return true;
}
});
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.