カテゴリー: 覚書

お・ぼ・え・が・き (´-人-`)


SurfaceViewへの描画サンプル

画像ではない直接描画
Androidプログラミングの館修正すべき箇所

Canvas#drawBitmapでのBitmapの静的描画。drawableリソースの読み込み。
SurfaceViewで高速描画する(1)
Threadを利用したBitmapの動的描画。
SurfaceViewで高速描画する(2) 処理落ちを考慮したタイマ処理

Viewへの描画だが、予備知識として。
グラフィックス(1)-Viewクラスへの描画

onTouchEventとの併用
グラフィックス(2)-SurfaceViewによる描画

クラスやインターフェイスが分かれているので、ちょっと面倒くさいかも。
Androidの勉強ページ

BallInof.java→BallInfo.java

SampleCanvasThread.javaで以下を追加。他にもなんか修正した…かも?

ArrayList<BallInfo> ballList = null;
public float screenWidth;
public float screenHeight;
public SurfaceHolder holder;

eclipseのウィザード関連

まだ完全ではないが概ね理解した …

ような気がするが目的まではまだだから取り敢えず覚書…
頭の中、パンッパンッやで…(ヽ’ω`)


ViewPluginが存在しなくてエラー。画像を返せば良いようだが、取り敢えずそこでストップ。
リスト3 file→element
作って覚えるEclipseプラグイン(2):ツリー表示プラグインを作成する (1/2)


テンプレートを利用する場合
Eclipse ウィザードを使って開発を高速化する

テンプレートを利用しない場合
Building an Eclipse Plug-in Project Wizard Linux Sagas

natureの登録まで
プロジェクトの特徴付け(Natureの付与)を行う

ネーチャー、ビルダー関連
プロジェクト・ネーチャーの定義方法: Eclipseプラグイン開発
新規ビルダーの定義: Eclipseプラグイン開発
Natureの作り方
Builderの作り方
eclipse plugin > java based project, how to – Stack Overflow

読み途中
Eclipse JDT tutorial – Java Model – Create, Access, Load Projects
Eclipse JDT – Abstract Syntax Tree (AST) and the Java Model – Tutorial

それほど詳しく読んではいないが理解の助けになったり、ずばりそのものらしきものが
書かれているようだが英語やサンプルが難解なので取り敢えず後回しにしてるもの(ノ∀`)
Eclipseプラグイン開発メモ(Hishidama’s Eclipse Plugin develop Memo)
独自の Eclipse プラグイン・テンプレートを作成する
FrontPage – きのさいと
Writing an Eclipse Plug-in (Part 4): Create a Custom Project in Eclipse – New Project Wizard: the Behavior | Hidden Clause
Computing Reality: Creating a Plugin Project Plugin Project Wizard
Eclipse Plugins Exposed, Part 3: Customizing a Wizard – O’Reilly Media
Eclipse Corner Article: Creating JFace Wizards
2.3 Reviewing the Generated Code | A Simple Eclipse Plug-in Example | InformIT

Composite

他のコントロールを含むことが出来るコントロールであるこのクラスのインスタンス
Instances of this class are controls which are capable of containing other controls.
Help – Eclipse Platform

Compositeは各種ウィジェットのスーパークラスであり、 SwingのJPanelのように、他のウィジェットのコンテナとして使用することができます。
Composite – SWTサンプル集

swt.null

nullは正確にはレイアウトではなく、レイアウトをセットしないということです。

 レイアウトデータとは、レイアウトにCompositeクラスを載せて自動的に配置するときに、配置のされ方を微調整するためのデータをセットするクラスです。
SWTレイアウトを活用しよう


主な流れ

  1. eclipse SDKやeclipse platform SDKを「新規ソフトウェアのインストール」でインストールする。
  2. eclipseで新規ウィザードを作るにはプラグイン・プロジェクトを利用する。テンプレートを利用しない場合はINewWizard等を使って構築する。
  3. 「org.eclipse.jdt.core.JavaCore」等を利用する為には必須プラグインの設定する。(org.eclipse.jdt系のjarを全て)
    How can I import eclipse JDT classes in a project
    Eclipseプラグイン マニフェストエディターメモ(Hishidama’s Eclipse Plugin MANIFEST Editor Memo)
  4. 設定項目や挙動はWizardPageのcreateControl()等に書いて、それをWizardにaddPage()していくらしい。この辺は特に触ってないので詳しくは不明(ノ∀`)
  5. WizardのperformFinish()で実際のプロジェクト作成のコードを書く。IFolderやらIClasspathEntryを使う
  6. IProjectDescription(プロジェクトの設定?)にnature(プロジェクトの特徴・方向性?)する。
  7. natureにbuilderを設定する。

という感じでやっていけば取り敢えずは良さそう(・∀・)

フッターの書き換え(・∀・)


ずっと前に仕事でxlsやdocのfooterの内容を変えることがあった時に書いたVBAコード。
仕事としてではなく試しに家で書いたものなので公開しても問題ない…はず(・∀・)

まあ内容的に古いので今更有効活用出来る内容ではないけれども、
いつかまた何かの役に立つかもしれないのでエントリとして保存しておこう。

多分、こちらのエントリを参考にして再帰部分は書いた…ような。
VBA(2007もOK)で,ファイルの再帰検索をしよう

その他の部分は色々なVBA関連のサイトやヘルプ(リファレンス?)を
参考にしたような気がするけど、詳しくは覚えていない。

MsgBoxとかの部分はお試しで入れているだけなので本当は要らない。
対象となるパスはxls_test()の中で直書きして、そこにxlsファイル群を
ぶちこんでこれを実行すると「All Rights Reserved, Copyright © ~」
みたいなのが右下のfooterに追加されるはず。
rightfooterを他のfooterやheaderに代えれば任意の部分の値を変更出来る…はず。

このままで動くかもしれないけれども、このコード自体は実地で
試したものではないので修正が必要かも(ノ∀`)

doc_test()はWord用。確かこれで動いたような気がする…けど自信はないw
最新のOfficeのVBAはどうなってるんだろうか。


Option Explicit

Function FileSearch2007(dir_path, target_extension)
	Dim found_files As Collection

	Set found_files = New Collection
	Call FileSearch2007_Repeat(dir_path, found_files, target_extension)
	Set FileSearch2007 = found_files
End Function

Private Sub FileSearch2007_Repeat(dir_path, found_files, target_extension)
	Dim fso As FileSystemObject
	Dim target_folder As Folder
	Dim sub_folder As Folder
	Dim objFile As File

	Set fso = New FileSystemObject
	Set target_folder = fso.GetFolder(dir_path)

	For Each sub_folder In target_folder.SubFolders
		Call FileSearch2007_Repeat(sub_folder.Path,found_files,target_extension)
	Next sub_folder

	For Each objFile In target_folder.Files
		With objFile
			If ((UCase)fso.GetExtensionName(.Path)) = target_extension) Then
				found_files.Add Item:=.Path
			End If
		End With
	Next objFile

	Set fso = Nothing
End Sub

Sub xls_test()
	Dim dir_path As String
	Dim target_extension As String
	Dim found_files As Collection
	Dim found_num As Integer

	//ここに対象のファイル群があるパスを指定
	dir_path = "<ディレクトリパス>" 'ThisWorkbook.Path & "\test"
	target_extension = UCase("xls")

	Set found_files = FileSearch2007(dir_path, target_extension)

	found_num = found_files.Count
	If found_num = 0 Then
		MsgBox "not found"
	Else
		MsgBox found_num & " found"

		Dim i As Integer
		Dim bookpath As String
		Dim TargetBook As Workbook
		Dim eachsheet As Worksheet

		For i= 1 To found_num
			bookpath=found_files(i)
			If Len(bookpath) > 0 Then
				'MsgBox bookpath
				Set TargetBook = Workbooks.Open(bookpath)

				'Office2010の互換性チェックを無効にする。
				Dim ret As Variant
				ret = Application.Version
				If Val(ret)=14 Then
					ActiveWorkbook.CheckCompatibility = False
				Else
				End If

				For Each eachsheet In TargetBook.Worksheets
					With eachsheet.PageSetup
					//ここでFooterやHeaderの値を修正
						RightFooter = "All Rights Reserved, Copyright " & Chr(169) & ""
					End With
				Next eachsheet

				TargetBook.Save
				TargetBook.Close
			End If
		Next i

		MsgBox "xls modified"
	End If
End Sub

Sub doc_test()
	Dim dir_path As String
	Dim target_extension As String
	Dim found_files As Collection
	Dim found_num As Integer

	dir_path = "<ディレクトリパス>" 'ThisWorkbook.Path & "\test"
	target_extension = UCase("doc")

	Set found_files = FileSearch2007(dir_path, target_extension)
	found_num = found_files.Count
	If found_num = 0 Then
		MsgBox "not found"
	Else
		MsgBox found_num & " found"

		Dim i As Integer
		Dim docpath As String
		Dim eachsheet As Worksheet
		Dim objWord As Object

		Set objWord = CreateObject("Word.Application")
		For i = 1 To found_num
			docpath = found_files(i)
			If Len(docpath) > 0 Then
				'MsgBox docpath
				With objWord
					.Documents. Open docpath

					.ActiveDocument.Section(1).Footers(1).Range.Text=
					"All Rights Reserved, Copyright " & Chr(169) & ""

					.ActiveDocument.Save
					.ActiveDocument.Close
				End with
			End if
		Next i
		MsgBox "doc modified"
	End If
End Sub

お・ぼ・え・が・き (´-人-`)


subject to change = 変更の可能性がある

comply 〔要求・規則に〕応じる,従う。準拠する。compliesをcompilesと読み間違えた(ノ∀`)


仕舞屋

《「しもうたや」の音変化》
1 商店でない、普通の家。また、その家屋。「―風(ふう)の店」
2 もと商店をしていたが、今はやめた家。

仕舞屋(しもたや)|京町家の意匠

表向きは住居専用であるが、家賃などで収入を得て自営をしない、資産活用の先駆けとも言える。開口部が小さく出窓のような格子になっていることが多い。

仕舞屋 とは

井原西鶴の《世間胸算用(せけんむなざんよう)》(1692)に〈表面(おもてむき)は格子作りに,しまふた屋と見せて〉とあるが,商店などの立ち並ぶ商業地域内の住宅をさすことが多く,住宅地内の住宅を〈しもたや〉と呼ぶのはおかしい。

仕舞屋(しもたや)

職住一体という住居の様式をもつ町家(町屋)では、道路側には「店の間(みせのま)」と呼ばれる、店舗や商談の為の部屋を持つことが一般的でしたが、「仕舞屋」は道路側に「店の間」を持っていません。
建物から出っ張っている「出格子(でごうし)」スタイルで、上下異なるピッチの格子も特徴です。
この建築は少なく、明治から大正にかけて登場しました。

かつての商業地域で店の間を持たず、格子窓を持った普通の家またはその家屋(´・ω・`)?


悉皆問屋

京友禅を制作する場合、注文主の意向をよく踏まえた上で、まず工程を想定し、これに最も適した職人を選定、加工指示を出し、途中で事故があれば適宜補正しながら完成まで面倒を見る、いわばプロデューサー的な役割をする者が必要になります。この仕事が悉皆屋(しっかいや)です。近年「染匠(せんしょう)」という言い方もされます。

特に技術は不要ですが、「悉く(ことごとく)皆」の名の示すように、広範囲にわたる知識とセンス、それに注文主の意向を汲み取る理解力が必要です。注文主の意向が伝わらないようでは「悟りが悪い」などと言われ、技量不足と評価されます。また優れた職人を抱えていることも悉皆屋の度量のひとつです。職人の人材バンクと言ってもいいでしょう。
また、小売店を相手にシミ抜きや洗い張り、染め、仕立てなど、様々な加工品を預かって帰り、京都の各工場で調整し納品するという業種も悉皆屋と呼ばれます。前者を工場とすると、こちらは卸問屋に位置し、むしろ一般にはこちらのほうがイメージされます。加工の仲介だけでなく、卸売りを兼ねている業態も少なくありません。
多くの解説を見ると、この卸問屋的悉皆業と前述の製造元的悉皆を区別せず説明しており、ある種の混乱を招いています。おかしな話ですが、私共は悉皆屋さんから仕事をもらってる悉皆屋ということになります。

[悉皆屋] 着物クリニック

ということなので、実際に作業等を行う職人側である悉皆屋と区別する為の言葉か?


state,conditionの違い

特に意識していなかったが同一文中に出て来たので気になった。

state…人や物事の精神的・感情的(mental, emotional), 肉体的あるいは物理的(solid)な一時的(steady, current)「状態」を表します。

condition…良い/悪い」という評価の対象になる、ある特定の「状態」を表します。

situation…ある特定の時や場所における「状況」全体を意味します。
state, condition, situation

conditonは使い方によってはそのような意味になりえますが、条件という意味が主です。
英語で「状態」というとき,stateとconditionの2つをどのように使い分けるべきです…

 stateとconditionは,共に「状態」と訳されます.conditionは「条件」とも訳すことがあります.ある条件を持っていることを状態と言えるので,その条件のことを言うのか,状態のことを言うのかによって,情報の分野で,conditionを「条件」か「状態」のいずれかを使っているようです.
state, status and condition : 状態と条件

引用先にある通り、conditionは「条件」と訳すべきなのかな。


in case where

‘in case where’という文章や翻訳も散見されます。‘in case where the train is late’や ‘in case where the timer beeps’などなど。必ずしも誤りであるとは言えませんが(それでも‘in cases where’としていただきたいところです)、普通の英語表現では‘when’ や ‘if’を用います。‘if the train is late’、‘when the timer beeps’のように表現しましょう。
第56回:書き方のヒント

フランス語で case に相当する cas はつなぎ言葉として where と when 両方の意味を持つ ou を使いますがその影響が何百年も続いているのかもしれません。
(略)
if a person is…「もしある人がガンのような深刻な病気だったら」
in cases where a person is…「ある人がガンのような深刻な病気であるような場合は」

in case(単数形)は if とほぼ同じ意味や「~するといけないから」の意味に使いますが、in case 自体を接続詞のように使い、通常つなぎの言葉 where や that は入りません。
関係代名詞 where について

ふーむ(´・ω・`)

お・ぼ・え・が・き (´-人-`)


Suspicious method call

eclipseで”Suspicious method call”が出たら、@SuppressLint(“WrongCall”)を
つけたり”Clear All Lint Makers”(リント警告の消去)等をすれば良いが、そもそも
on~というメソッド名を使用しなければ良い(´・ω・`)?
wrongcall

Androidでいきなりエラーが出るようになりました。


LogCatへの出力

Log.e(String title,String message);

という形で指定するらしい。
errorの場合は”e”、infoの場合は”i”という風にレベルを変えるみたい。

Androidでデバッグログを出力する方法


アクティビティーの画面方向の固定

AndroidManifest.xml内の<activity>タグの属性に

android:screenOrientation="portrait"

という風に追加する。横固定ならlandscapeを指定する。
当初、sensorとunspecifiedの違いが今ひとつわからなかったが、
これはシステムの方で自動回転を有効にしていたからだった(ノ∀`)
システム設定に依存せずにアプリというかアクティビティーを
自動回転させたい場合はsensorにしろということか。

方向のみ固定で傾きによってその方向にのみ反転するのはどうするんだろうか?
プログラム的にやれるのかな?

画面の向き(ScreenOrientation)


s2.8 障害物を作る.2のDiagramCalcrクラスに
isHitメソッドが足らなくてエラーになる。→取り敢えず追加すればいい。

というよりもisHit、isHitLCがCollision、CollisionLCになってるくさい。


そのまま実行したらエラーになった。”_type”がnullの為、switchのところで
NullPoになっているみたい。

if (conf != null) {
			_rotaSpeed = conf.speed; // 回転スピード
			_type = conf.type; // 物体のタイプ
		}else{
			_type =Barricade.eType.OUT;
		}
		switch (_type) {

コメントで”// コンフィグを特に設定しない時はnullを渡すとデフォルト設定になる”と
あったが、BarricadeSquareはBarricadeをそのままnullを渡してしまうのでエラーになる。

protected eType _type = Barricade.eType.OUT;

if (conf != null) {
  _rotaSpeed = conf.speed; // 回転スピード
  _type = conf.type; // 物体のタイプ
}else{
  _type =Barricade.eType.OUT;
}

という風にしないといけないような気がする(´・ω・`)