안녕하세요~
이기능 구현하자고 자료들을 보았는데 신통히 나온것이 없어 정리하여 올려봅니다.
유용하게 사용하시기를...

근데 대각선으로 스크롤 할때 스크롤바가 다 나타나지 않습니다.
혹시 수정하신분 있으시면 알려주세요. 감사합니다.

[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;
}
}