投稿

リソースのSurfaceViewを使う

リソースのSurfaceViewを使うには、getHolder()でSurfaceHolderを取得する。 SurfaceHolder.Callbackのインターフェイスを持つクラスをコールバックに登録する。 public class MyView implements SurfaceHolder.Callback, Runnable{ private SurfaceHolder mHolder; private Thread mRun; MyTouchActivity mMain; // コンストラクタ public MyView(MyTouchActivity myactivity, SurfaceView sv){ mMain = myactivity; // リソースのSurfaceViewからSurfaceHolderを得てコールバックを設定する mHolder = sv.getHolder(); mHolder.addCallback(this); } @Override public void surfaceCreated(SurfaceHolder holder){ mRun = new Thread(this); } @Override public void surfaceDestroyed(SurfaceHolder holder){ mRun = null; } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height){ if(mRun != null){ mRun.start(); } } @Override public void run(){ Paint p = new Paint(); while(mRun != null){ Canvas canvas = mHolder.lockCanvas(); canvas.drawColor(Color.BLUE); p.setColor(Color.argb(255, 255, 255, 0)); canvas.drawCircle...

XMLレイアウト includeとmarge

インクルードするファイルはこんな感じ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <include layout="@layout/title_image"/> </FrameLayout> インクルードされるファイルはこんな感じ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/image" /> </FrameLayout> これだと、FrameLayoutが重なっちゃうので<marge>をつかうと良い感じに <merge xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" andr...

android.view.LayoutInflater

Activity public LayoutInflater getLayoutInflater () LayoutInflater public View inflate (int resource, ViewGroup root)