eclipseで9patchを使った画像が認識できません。

1,347 views
Skip to first unread message

Masahiro Kikuchi

unread,
Oct 20, 2011, 12:19:42 PM10/20/11
to 日本Androidの会
初めて投稿させていただきます。androidアプリ開発初心者です。
キクチと申します。

現在、eclipseで開発しています。
文字列入りの画像をImageButtonとして、リキッドレイアウトで表示したくて、初めて9patchを行ってみました。
文字列の部分を避けて、画像上部の左右の両端に1pxずつ点を付けました。
画像左側には同じく文字列を避けて下のほうに一つだけ1pxの点を付け、コンテンツ部分を指定する画像右側と下の部分には、中の文字列の大きさに合わせ
るようにして1px分の太さの線を引きました。

それを、「image_btn1.9.png」という拡張子を付けて、eclipseのdrawableフォルダへ入れ、layoutファイルは以下の
ようにしました。

<ImageButton android:id="@+id/image_btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/image_btn1"/>

ですが、No resource found that matches the given nameというエラーが出てしまいます。

画像の枚数が多くて、androidSDKに付属しているDraw9patchでは1pxの点や線を書き込むのに使いづらく時間がかかってしまうため、
Photoshopを使って9patch画像を作りました。
また、ネットで調べたところ、同じ現象を経験した人のブログが見つかり、drawable-hdpi、drawable-mdpi、drawable-
ldpiの全部に9patch画像を入れたらエラーが出なくなったとのことでしたので、同じことをやってみましたがダメでした。
そのほかにも、ファイル名を変えてみたり、「android:src=」の部分を「android:background=」にしてみたりといろいろ
やってみましたが、改善されませんでした。

しかし、9patchを使ってない普通の画像はエラーにならず、大丈夫です。

Photoshopを使ったからでしょうか?
やはりSDK付属のツールでなくてはうまくいかないってことなんでしょうか?

また、Draw9patchツールでは時間がかかってしまうので、なにかほかにいいツールはないものでしょうか?

以上の件について、どなたかご教授いただけると幸いです。

キクチ

Satoru Isomoto

unread,
Oct 20, 2011, 10:53:24 PM10/20/11
to android-g...@googlegroups.com
キクチさん

いそもとです。

9-patch は、Draw9patchツール以外では指定(定義)できないように思いますが。。

Eclipseのconsoleに9-patch のエラーが出てませんか?

配置しようとしている画像を貼付してい頂けると
回答がスムーズに得られると思いますよ。


---
Satoru Isomoto
@s_isomoto

2011年10月21日1:19 Masahiro Kikuchi <tag-...@net.email.ne.jp>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

DAT

unread,
Oct 20, 2011, 11:22:58 PM10/20/11
to android-g...@googlegroups.com
キクチさん

原田と申します。

そのエラーは指定した名前がリソースないで見つからなかった時のエラーだったと思います。
Eclipseでコードを書いているのであれば、コード補完があるので、 R.drawable. と打ち込んだら、drawableに置いたファイルの一覧が出ると思います。そこに目的のファイル名があるか確認して下さい、。

また、私の方ではGIMPを使って9patchを当てておりますが、問題なく表示できました。
その際、画像の上下左右を1ドットずつ透明で拡大し、その透明エリアに黒(000000)で線を引きました。
保存はGIMPに任せ、拡張子pngで行いました。
Photoshopは持っていないので判りませんが、同じようなことは出来ませんでしょうか。

Masaki Natsuki

unread,
Oct 20, 2011, 11:20:17 PM10/20/11
to android-g...@googlegroups.com
Natsukiです

No resource found that matches the given name というのはリソースがおかしくなっていないですか?
Eclipse の問題ビューやエラーログビューなどにエラーがでていないでしょうか。
数字から始まるファイル名のリソースがあったり、ファイル名に大文字や全角文字があったり、拡張子違いの同じ名前のファイルがあったりするとエラーが出たと思います。
エラーがなければプロジェクトをクリーンしてR.javaを再生成すると良いと思います。


> また、Draw9patchツールでは時間がかかってしまうので、なにかほかにいいツールはないものでしょうか?

Draw9patchツールでなくとも9Patchリソースは作成できます。
ただ、正しく作成できたかどうかはDraw9patchツールで確認してください。
[show bad patches]ボタンを押して、悪いパッチ(赤い枠)が表示されないかチェックしてみてください。
これで問題なければPhotoshopでも大丈夫かと思います。


2011年10月21日1:19 Masahiro Kikuchi <tag-...@net.email.ne.jp>:

Masahiro Kikuchi

unread,
Oct 21, 2011, 8:44:43 AM10/21/11
to 日本Androidの会
原田さん、ご教授ありがとうございます!

> そのエラーは指定した名前がリソースないで見つからなかった時のエラーだったと思います。
> Eclipseでコードを書いているのであれば、コード補完があるので、 R.drawable.
> と打ち込んだら、drawableに置いたファイルの一覧が出ると思います。そこに目的のファイル名があるか確認して下さい、。

早速、教えていただいたとおりにやってみました。
そしたら、ファイルの一覧の中にちゃんと目的のファイル名が出たんです!
なのに、No resource found that matches the given nameエラーが出ていました。

> また、私の方ではGIMPを使って9patchを当てておりますが、問題なく表示できました。
> Photoshopは持っていないので判りませんが、同じようなことは出来ませんでしょうか。

Photoshop、Fireworksで作った画像の両方ともダメでした。
Draw9patchツールで作ったものはやっぱりエラーなど出なくて、問題なかったです。

もしかすると、PhotoshopやFireworksなどは、
なんらかの他のデータが混じってるのかもしれませんね。
だから、show bad patchesボタンを押すと赤い線が出て、
不正なパッチだらけになってしまったのではないかと推測します。

とりあえず、今回はDraw9patchで作ることにします。
次回、9patchを作るときにGIMPを試してみます。

ありがとうございました。

Masahiro Kikuchi

unread,
Oct 21, 2011, 8:44:53 AM10/21/11
to 日本Androidの会
いそもとさん、ご教授ありがとうございます!

> Eclipseのconsoleに9-patch のエラーが出てませんか?

コンソールにはエラーは出てなかったんですが、問題のところがエラーで真っ赤っかでしたwww。

ところが、やはり、Draw9patchツールで作った画像を使ったらエラーが出ませんでした。

PhotoshopやFireworksなどで作った画像でshow bad patchesボタンを押すと、
『不正なパッチ』だらけで、こちらも真っ赤っかでしたwww。
たぶん、それが原因だったのではないかと思います。

時間がかかりますが、Draw9patchで作ることにします。

ありがとうございました。

ネギシ タク

unread,
Oct 21, 2011, 6:32:41 PM10/21/11
to android-g...@googlegroups.com
キクチさん

ネギシです。

Adobe系のツールで書き出したデータは、なにかとエラーの原因になりますね。
Fireworksの「別名保存」で形式を「レイヤーなしのPNG」にすると、もしかするとエラーの回避ができるかもしれません。


2011年10月21日21:44 Masahiro Kikuchi <tag-...@net.email.ne.jp>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

--
----------------------------------------------
ネギシ タク : Taqoo Negishi
e-mail : taqoo...@gmail.com
web : http://taqoo.is.land.to/
----------------------------------------------

Masahiro Kikuchi

unread,
Oct 22, 2011, 5:09:42 AM10/22/11
to 日本Androidの会
Natsukiさん、ご教授ありがとうございます!
返信が遅くなってしまってすいません。
一度返信したんですが、反映されていなかったようです・・・。

> No resource found that matches the given name というのはリソースがおかしくなっていないですか?
> Eclipse の問題ビューやエラーログビューなどにエラーがでていないでしょうか。

はい。問題ビューがNo resource found that matches the given nameの文字で真っ赤っかでした。

> 数字から始まるファイル名のリソースがあったり、ファイル名に大文字や全角文字があったり、拡張子違いの同じ名前のファイルがあったりするとエラーが出たと思い ます。

そういうファイルはなかったんです・・・。

> Draw9patchツールでなくとも9Patchリソースは作成できます。
> ただ、正しく作成できたかどうかはDraw9patchツールで確認してください。
> [show bad patches]ボタンを押して、悪いパッチ(赤い枠)が表示されないかチェックしてみてください。
> これで問題なければPhotoshopでも大丈夫かと思います。

Natsukiさんに教わって[show bad patches]の正確な意味が解り、
さっそくPhotoshopとFireworksで作った画像を確認してみました。

すると、1px分の点と線がちゃんと入っているのに、
赤い枠で囲まれてしまって使い物にならないことが判明しました。

なので、今回はがんばってDraw9patchツールで作ることにします。
次回9patchを作るときには、何かほかのツールを試してみたいと思います。

勉強になりました。ありがとうござました。


Masahiro Kikuchi

unread,
Oct 22, 2011, 5:13:42 AM10/22/11
to 日本Androidの会
ネギシさん、ご教授ありがとうございます!

> Adobe系のツールで書き出したデータは、なにかとエラーの原因になりますね。
> Fireworksの「別名保存」で形式を「レイヤーなしのPNG」にすると、もしかするとエラーの回避ができるかもしれません。

あ、やっぱりエラーがおおいんですか!?
Adobeの製品はとても優秀なものが多いですが、クセがありますよねぇ~。

「レイヤーなしのPNG」ですね。早速やってみます!

ありがとうございました。

yuka2py

unread,
Oct 22, 2011, 6:57:11 AM10/22/11
to android-g...@googlegroups.com
ゆぅです。こんばんわ。

既に解決されたというか、いちおう大丈夫なようなところ恐縮ですが、
Adobe 製品というか、Draw9patch 以外のツールではうまく行かないっぽい
ようなお話にも見えるかも知れないのでコメントさせていただきますが、
それらのアプリケーションでも、まったく問題ありませんよ♪

私自身は、Draw9patch を使ったのは最初だけで、マークのつけ方を覚えてからは、
Fireworks や Photoshop ばかりで制作しています。

もちろん、たまに Eclipse に文句を言われることはありますけれど、何か問題が
あるときは、ちょっと色がはみ出てたとか、必ず自分の制作上のミスでした♪

デザイン関連の作業をしている方は、多くの方が Fireworks や Photoshop を
利用されているかと思いますが、色がはみ出ないようにとか、ちょっと注意して
制作する必要があるにしろ、Draw9patch を使うより、はるかに生産性が上がる
かと思いますので、どんどん利用されると良いと思います。

ちなみに私は、Fireworks 上でのミスを減らすために、次の順で9patchしています。
1)先に自動作成でスライスを作成する
2)スライスの範囲を上下左右に 1px ずつ広げる
3)9 patch のマークを書き込む

↑のように先にスライスを自動で作図すると色のハミ出とか、確認できるので
間違いを少しでも減らすことが出来たりします。

ではでは。
-- ゆぅ。


2011年10月22日18:09 Masahiro Kikuchi <tag-...@net.email.ne.jp>:

Masahiro Kikuchi

unread,
Oct 23, 2011, 4:34:36 AM10/23/11
to 日本Androidの会
ゆぅさん、ご教授ありがとうございます!

> ちなみに私は、Fireworks 上でのミスを減らすために、次の順で9patchしています。
> 1)先に自動作成でスライスを作成する
> 2)スライスの範囲を上下左右に 1px ずつ広げる
> 3)9 patch のマークを書き込む

早速、ゆぅさんの手順どおりにやってみました。
(さらにレイヤーなしのpngで書き出しました)

そしたら、

おお~!eclipseさんに怒られませんでした!

レイヤーなしじゃなくても大丈夫でした!

ありがとうございますっっ!

ということは、私の作った画像はきっとどこかがはみ出していたりしたんでしょうね…。

それを、Adobe製品のせいみたいに言ってしまって…。
Adobeさんにも申し訳ない気持ちでいっぱいです…。

Adobeさん、すいませんでした! m(_ _)m

ゆぅさん、ありがとうございました!

yuka2py

unread,
Oct 23, 2011, 6:05:38 AM10/23/11
to android-g...@googlegroups.com
キクチさん、

良かったです!

> ということは、私の作った画像はきっとどこかがはみ出していたりしたんでしょうね…。

…ってことですかね♪ たぶん。

ほかにも私がやらかしたことがあるのは、
9 patch のマーカーを真っ黒(#000000)でなくて、
微妙に明るい色になってたり、とか、です。

あと、Natsukiさんも書かれてましたが、
同じ名前で違う拡張子のファイルがあったりとか、
9 patch なら「.9」が有るのと無いのと重複してたりとか、
そんな色々で失敗しています。テヘ♪

よくあるのはそんなところかな、と思うので、ご参考まで。

ではではー。

-- ゆぅ。


2011年10月23日17:34 Masahiro Kikuchi <tag-...@net.email.ne.jp>:

Masahiro Kikuchi

unread,
Oct 21, 2011, 8:44:18 AM10/21/11
to 日本Androidの会
Natsukiさん、ご教授ありがとうございます!

> No resource found that matches the given name というのはリソースがおかしくなっていないですか?
> Eclipse の問題ビューやエラーログビューなどにエラーがでていないでしょうか。

はい、問題ビューが真っ赤っかでした。

> 数字から始まるファイル名のリソースがあったり、ファイル名に大文字や全角文字があったり、
>拡張子違いの同じ名前のファイルがあったりするとエラーが出たと思います。

とくにそういったファイルはありませんでした。

> Draw9patchツールでなくとも9Patchリソースは作成できます。
> ただ、正しく作成できたかどうかはDraw9patchツールで確認してください。
> [show bad patches]ボタンを押して、悪いパッチ(赤い枠)が表示されないかチェックしてみてください。
> これで問題なければPhotoshopでも大丈夫かと思います。

Natsukiさんにこのshow bad patchesボタンの意味を教えていただいて、早速Photoshopで作った画像を確認してみまし
た。
すると、全部の画像がこれまた真っ赤な枠で囲まれてしまいました。
なので、もう一度画像をよ~く確認してみたのですが、とくに問題なくちゃんと1pxの点と線が引いてあります。
Fireworksでも作ってみましたが、同じでした。

上で返信していただいた原田さんはGIMPを使ってるそうですが、エラーなどは出ないそうですので、
もしかすると、PhotoshopやFireworksについては、9patchに向いてないのかもしれませんね。

今回は、Draw9patchツールを使うことにします。
Draw9patchツールで作ったものは、問題なかったので…。

ありがとうございました。

ネギシ タク

unread,
Oct 24, 2011, 9:02:23 AM10/24/11
to android-g...@googlegroups.com
キクチさん


間違った情報をお伝えしてしまいすいません。

前に9 patch ではないことなのですが
苦労したことがあったのでバイアスがかかっていました。

Fireworks のせいではなかったようですね。
とりあえず問題が解決してよかったです。


2011年10月23日17:34 Masahiro Kikuchi <tag-...@net.email.ne.jp>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

--

Reply all
Reply to author
Forward
0 new messages