Program/Android Java

Android ScrollView ( H, V, 대각 ) 스크롤 구현

너구리V 2012. 6. 21. 19:58

[xml 내용]
<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id = "@+id/imageViewVerticalScroll"
android:layout_width="200dip" 
android:layout_height="300dip">

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id = "@+id/imageViewHorizontalScroll"
android:layout_width="200dip"
android:layout_height="400dip">

<ImageView android:id="@+id/fullImgView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg2">

</ImageView>

</HorizontalScrollView>

</ScrollView>

[class 소스]
public class mainscv extends Activity implements OnTouchListener {
private static HorizontalScrollView Scroll_Horizontal;
private static ScrollView Scroll_Vertical;
protected static int currentX = 0;
protected static int currentY = 0; 
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Scroll_Vertical = (ScrollView) findViewById(R.id.imageViewVerticalScroll);
        Scroll_Vertical.setOnTouchListener(this);
        Scroll_Horizontal = (HorizontalScrollView) findViewById(R.id.imageViewHorizontalScroll);
        Scroll_Horizontal.setOnTouchListener(this);
    }

public static void scrollBy(int x, int y)
    {
     Scroll_Horizontal.scrollBy(x, 0);
     Scroll_Vertical.scrollBy(0, y);    
    }
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
currentX = (int)event.getRawX();
currentY = (int)event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
int x2 = (int)event.getRawX();
int y2 = (int)event.getRawY();
scrollBy(currentX-x2, currentY-y2);
currentX = x2;
currentY = y2;
break;
case MotionEvent.ACTION_UP:
break;
default:
currentX = (int)event.getRawX();
currentY = (int)event.getRawY();
break;  
}
currentX = (int)event.getRawX();
currentY = (int)event.getRawY();
return true;
}
}

반응형

'Program > Android Java' 카테고리의 다른 글

이클립스 테마 바꾸는법  (0) 2012.06.28
[SKT NFC] SKT NFC on USIM 시연영상  (0) 2012.06.23
여가가지 Intent 활용  (0) 2012.06.21
ScrollView 위에 잔상 남는 현상  (0) 2012.06.20
Stroke TextView 만들기  (0) 2012.06.20