我的關於Android UI的問題。 當我們與XML的佈局工作,我們寫的(例如)組合畫布和佈局(Android)
setContentView(R.layout.main);
當我們與2D圖形的工作,我們寫
Draw2D d = new Draw2D(this);
setContentView(d);
所以,如果我想同時使用?我需要使用layout-xml,並且屏幕的一部分是fir繪畫(Canvas)。我讀過關於surfaceView的內容,但簡單使用Canvas怎麼樣?
我的關於Android UI的問題。 當我們與XML的佈局工作,我們寫的(例如)組合畫布和佈局(Android)
setContentView(R.layout.main);
當我們與2D圖形的工作,我們寫
Draw2D d = new Draw2D(this);
setContentView(d);
所以,如果我想同時使用?我需要使用layout-xml,並且屏幕的一部分是fir繪畫(Canvas)。我讀過關於surfaceView的內容,但簡單使用Canvas怎麼樣?
實際上,您可以從XML文件膨脹佈局,然後檢索任何視圖以在其上繪製。 SurfaceView特別方便繪圖。
您可以在下面找到一個例子:
的main.xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<SurfaceView
android:id="@+id/surface"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
TestActivity.java:
public class TestActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SurfaceView surface = (SurfaceView) findViewById(R.id.surface);
surface.getHolder().addCallback(new Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
// Do some drawing when surface is ready
Canvas canvas = holder.lockCanvas();
canvas.drawColor(Color.RED);
holder.unlockCanvasAndPost(canvas);
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
});
}
}
非常感謝!第一個決定是真正的工作! – user1752669
這是什麼Draw2D的課嗎? – fiddler
沒關係。這是我使用onDraw的類()
@Override \t protected void onDraw(Canvas c){ \t super.onDraw(c); \t Paint paint = new Paint(); \t paint.setStyle(Paint.Style.FILL); \t ...
– user1752669