Well the ScrollView will dispatch the touch-event to the View inside of it.. you don't have to worry about that, just override the onTouch method for your custom view as you're used to. See, all touchevents are passed to the ScrollView. The ScrollView then dispatches them to the child (which may in turn dispatch it to it's child if it has any). Before the ScrollView passes the touchevents on to it's children, it will look at them and determine whether or not it should scroll. So it really takes care of everything: when you make a scroll movement, it will scroll, and when you make something else, it will pass it on to the child.
I don't really know if there are any other ways, I mean you could handle scrolling by yourself inside the view (so if the user presses the screen and moves his finger, you scroll), but there's no point in inventing the wheel again I guess. Perhaps you don't have to draw the cards or whatever you're drawing by yourself, perhaps you can use ImageViews and stuff. For instance, I guess you could use an AbsoluteLayout and use ImageViews. Haven't played around with it though, I think the way I suggested will work... Try it, and if you're not satisfied, we'll figure something out
So, just keep track of the size of your View at all time. Use the current size in onMeasure, to make sure the ScrollView knows your size. When you change the size, call requestLayout, that will force the ScrollView to ask your View about it's dimensions again.