LoginSignup
0
0

More than 5 years have passed since last update.

Galaxy PenSDKを使う3回目

Posted at

SpenSurfaceViewを使うとSpenpenがいないので、ブラシの選択方法が少し異なります。

.java
        SpenPenManager penManager = new SpenPenManager(mContext);
        List<SpenPenInfo> penList = penManager.getPenInfoList();
        SpenSettingPenInfo penInfo = new SpenSettingPenInfo();
        for (SpenPenInfo info : penList) {
            if (info.name.equalsIgnoreCase("Brush")) {
                penInfo.name = info.className;
                break;
            }
        }
        penInfo.color = Color.BLUE;
        penInfo.size = 10;
        mSpenSurfaceView.setPenSettingInfo(penInfo);

色と、サイズも一緒に変更ができる。
penInfoの中にある変数をいじると設定ができそうだけど、リファレンスの中にはこの項目が存在しなかった。

続いて、画像として保存をする時に描画領域だけでなく背景のキャンバスも一緒に取得ができてしまうので、
背景のキャンバスを透過させる処理を考える。

.java
 mSpenPageDoc = mSpenNoteDoc.appendPage();
mSpenPageDoc.setBackgroundColor(Color.TRANSPARENT);

みたいな形でTRANSPARENTを指定するが黒い背景になってしまう。
ここでsurfaceViewを使っているので、それに合うようにTransparentの時に透過をさせる処理を追加する

.java
     mSpenSurfaceView = new SpenSurfaceView(mContext);
        mSpenSurfaceView.setZOrderOnTop(true);    // necessary
        SurfaceHolder sfhTrackHolder = mSpenSurfaceView.getHolder();
        sfhTrackHolder.setFormat(PixelFormat.TRANSPARENT);

これで書いたデータのみを透過させる事ができた。

このデータをbitmapとして、出力する方法が

.java
Bitmap imgBitmap = mSpenSurfaceView.captureCurrentView(true);

3回で、とりあえず、SDK周りの使用は基本ができたかなと。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0