嗨朋友 我正在創建一個應用程序,我把兩個視圖。首先是imageview,另一個是我的自定義視圖。在android中的縮放和平移視圖
我在自定義視圖上繪製圖像。我的自定義視圖代碼如下
public class DrawView extends ImageView{
@SuppressWarnings("unused")
private static final String TAG = "DrawView";
Painter painter = new Painter();
PathStack pathStack;
private DrawApplication drawApplication;
public DrawView(Context context, AttributeSet attr) {
super(context,attr);
setFocusable(true);
setFocusableInTouchMode(true);
drawApplication=(DrawApplication)context.getApplicationContext();
pathStack=drawApplication.getPainter().getPathStack();
painter=drawApplication.getPainter();
setScaleType(ScaleType.MATRIX);
}
@Override
public void onDraw(Canvas canvas) {
float scaleFactor=drawApplication.getScaleFactor();
canvas.scale(scaleFactor, scaleFactor,(float)getWidth()/2,(float)getHeight()/2);
List<DrawingPath> currentStack=pathStack.getCurrentStack();
for (DrawingPath drawPath : currentStack) {
drawPath.draw(canvas, painter);
}
}
}
從代碼中明確就像drawapplication等存儲路徑很多事情
現在我們已經決定提供縮放和平移這一觀點。並且我的繪圖也應該隨後與imageview一起放大。
我也應該能夠正確繪製。
我試過畫布縮放,但這是最糟糕的,因爲縮放後我不能繪製到觸摸點,也更少繪製到屏幕導致更多的繪製視圖。
在小部件上繪圖也非常冗長任務導致性能下降。 PLZ提供任何方式。
而且我使用API級10
EDIT1
是朋友。我有一個想法。 我必須在不同的縮放級別繪製路徑。所以如果我們可以在不同的縮放級別下計算路徑比率,它將解決我的問題。 PLZ提供幫助據此
EDIT2
如果我們將能夠擴展路徑,然後如果我們繪製位圖不是我能解決我的問題
EDIT3
我認爲可以實現我的目標,但我的問題是調整位圖大小和提供不同縮放級別的位圖滾動
對於平移,您可以使用View的框架進行滾動。如果你還想平滑滾動我已經回答[這裏](http://stackoverflow.com/questions/4951142/smooth-scrolling-in-android/4951681#4951681)(如果你不這樣做,你可以返回在'onDown()'中爲true,並省略'mScroller' /'onFling()'代碼)。對於縮放,我很抱歉,但我只用'ImageView'做到了。 – bigstones 2011-04-14 14:14:00