CANVASに画像を表示し、その画像を回転させるようにしたいのですが、どうにもうまくいかなくて困っています。

画像の中心を軸に回転させたいと思って以下のように実装してみたのですが、うまくいきません。

//////////////////////////////以下抜粋////////////////////////////////
Matrix matrix;

// Bitmap のサイズの取得
int width = bmp.getWidth();
int height = bmp.getHeight();

matrix = new Matrix();

// 画像の中心を軸に回転させるようにする(ここがうまくいっていないっぽい・・・)
matrix.postRotate(5.0f, width / 2.0f, height / 2.0f);

// 回転させた画像を生成する
bmp2 = Bitmap.createBitmap(bmp, 0, 0, width, height, matrix, true);

// CANVASに画像を描画する
canvas.drawBitmap(bmp2 , 10.0f, 10.0f, paint);

//////////////////////////////////////////////////////////////////////

上記のコードで画像自体は回転するのですが、中心軸がずれてしまっているようです。

画像のサイズは横15ピクセル、縦15ピクセルとなっております。

また、matrix.postRotateの前でmatrix.postTranslate()にて軸を設定してみたのですが、
これもうまくいきませんでした。

きれいに画像を回転させるにはどのようにすればよいか、わかる方いましたら教えて
いただけないでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

その方式ならちゃんと中心で回ってますが、


表示される位置が変わるってことになります。
つまり元のは100px辺の正方形だったとしても
bmp2にクリエイトビットマップされるときにはbmp2は幅100ではなくなってるんです。
45度にかたむけたとしたら100px正方の対角線の長さに画像の大きさが大きくなってしまい。
そのbmp2の描くポジションが同じ数値位置にとどめアニメなどするとぎったんばっこんすることになります。
なので、そのbmp2をクロップし100px幅のに収めるか、(図によっては角が切れます)。
もしくは、角度変えた都度都度表示位置をずらし修正してやります。
bmp2のgetWidth()と元bmpのgetWidth()の差の半分でトランスレート位置を計算し反映させれば真ん中でキレイに廻ってるように見せられるでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!!

言われみて気付きました。確かにそうですね。
画像を回転させると画像のサイズが大きくなってしまいますね!

解決しました、ありがとうございました!

お礼日時:2011/04/20 17:52

ちなみにbmp2のトランスレートてのは、そのマトリクスにするんでなく


キャンバスにドロウするときのx.y位置を都度都度ずらしたればいいという事になります
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qさっきの子の加工なしです アイコンの人どう思いますか? 可愛いと思いますか?

さっきの子の加工なしです
アイコンの人どう思いますか?
可愛いと思いますか?

Aベストアンサー

No.1です。
こっちの写真はかわいいですね。笑顔もいいですし。(^_^;)

でも、こんなのに写真を乗っけるのはきちんと相手の了解を取ってからにしましょう。訴えられたら間違いなく負けます。

Qandroidアプリ開発 ネット上の画像表示

お世話になっております。

前回

http://oshiete.goo.ne.jp/qa/6829605.html

こちらで質問させて頂き、リストに画像を表示することに成功したのですが、
画像URLが"~~.JPG"(大文字)であったり、画像以外のファイルURLである場合、
エラーが出て強制終了してしまいます。

これを回避するにはどうしたらよいでしょうか。

問題のある画像URLの場合はダミーの画像ファイルを代わりに表示させるか、
なにも表示させないかにしたいです。

どうぞよろしくお願いします。

Aベストアンサー

ふと思ったのですが。
アクセスするRSSデータは、UTF-8でエンコードされていますか。そのへんの、文字コードによる問題はありませんか。

また、問題の大文字のJPEGファイル名ですが、全角文字が混ざっていたりすることはないでしょうか。あるいは、小文字でアクセスすると表示される、というようなことはないでしょうか。

ParseExceptionでエラーになっているというのは、プログラムの問題というより、元データに問題がある可能性も考えたほうがいいでしょう。

Q可愛いアイコン

Macを使ってます。
可愛いアイコンを探してます。
お勧めのがあれば教えて下さい。
あと 可愛いと思うHPを教えて下さい。
イラスト系などがとても嬉しいですが、それ以外でもいいです。

Aベストアンサー

お好きなのをどうぞ。

参考URL:http://www.so-net.ne.jp/download/mac/amuse/icon/

Qandroidアプリ開発 xmlパーサについて

お世話になっております。

xmlパーサについておききしたいことがございます。
現在、twitterリーダーアプリを製作中なのですが、
全ての行を読み込むと動作が重いので、
読み込む行の数を10行と指定したいのですが、
いい方法はありますでしょうか。

自分で試してみたところ、
表示させる行の数を指定することには成功したのですが、
いまいち、読込み速度の減少が実感できません。

お力をお貸し頂ければ幸いです。
よろしくお願いします。


// タグの識別子
private static final String PROFILE_IMAGE_URL = "profile_image_url";

public ArrayList<TwitterStatus> parse() {
ArrayList<TwitterStatus> list = null;
XmlPullParser parser = Xml.newPullParser();
try {
byte[] data = HttpClient.getByteArrayFromURL(urlStr);
parser.setInput(new StringReader(new String(data, "UTF-8")));
int eventType = parser.getEventType();
TwitterStatus currentStatus = null;
boolean isFinished = false;
while (eventType != XmlPullParser.END_DOCUMENT && !isFinished) {
String name = null;
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<TwitterStatus>();
break;
case XmlPullParser.START_TAG:
name = parser.getName();
if (name.equalsIgnoreCase(STATUS)) {
currentStatus = new TwitterStatus();
} else if (currentStatus != null) {
if (name.equalsIgnoreCase(TEXT)) {
currentStatus.setText(parser.nextText());
} else if (name.equalsIgnoreCase(SCREEN_NAME)) {
currentStatus.setScreenName(parser.nextText());
} else if (name.equalsIgnoreCase(PROFILE_IMAGE_URL)) {
// アイコンURLを取得
currentStatus.setProfileImageUrl(parser.nextText());
}
}
break;
case XmlPullParser.END_TAG:
name = parser.getName();
if (name.equalsIgnoreCase(STATUS) && currentStatus != null) {
list.add(currentStatus);
} else if (name.equalsIgnoreCase(STATUSES)) {
isFinished = true;
}
break;
}
eventType = parser.next();
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return list;
}
}

お世話になっております。

xmlパーサについておききしたいことがございます。
現在、twitterリーダーアプリを製作中なのですが、
全ての行を読み込むと動作が重いので、
読み込む行の数を10行と指定したいのですが、
いい方法はありますでしょうか。

自分で試してみたところ、
表示させる行の数を指定することには成功したのですが、
いまいち、読込み速度の減少が実感できません。

お力をお貸し頂ければ幸いです。
よろしくお願いします。


// タグの識別子
private static final String PROFILE_...続きを読む

Aベストアンサー

XmlPullParserは、基本的に「全データをロードした後、内容を処理していく」ものですので、表示項目数そのものを減らしても、肝心のダウンロードにかかる時間は変わりませんから短縮化にはならないでしょう。

現状では、RSSやAtomはXML形式で提供されており、XMLは最後まで読み込んでからでないと解析できないので、「途中まで読んで終わらせる」というような使い方は難しいように思えます。もうちょっと別のアプローチを考えないといけませんね。

例えばですが、アクセスして表示したら、その内容をどこかに保管しておき、次に起動したときにはそのキャッシュされている内容をとりあえず表示する。同時に再アクセスし、新しいデータがダウンロード完了した段階で、キャッシュされたデータと比較し、新たな項目だけを追加して表示を更新する。多くのダウンロード型のデータ表示アプリは、だいたいそんな感じでアプローチしていると思います。

Q可愛いアイコン素材屋

ちっちゃくてひとつひとつがすごく凝っているような、素敵なアイコン素材屋さんって知りませんか?
オススメがありましたら是非お願いします。

Aベストアンサー

http://885.zombie.jp/
http://effects.if.tv/lostpia/
http://www.crystalcolor.net/station/
http://drop-cafe.net
http://forbidden-fruit.raindrop.jp/
http://kaori.ciao.jp
http://www.goblin-s.com/goblinkingdomhome.html
http://liz.vivian.jp/
http://1kb-sozai.com/
http://www.vpmido.com/
http://park14.wakwak.com/~lunar/
http://candied.cn1.jp/
http://members.jcom.home.ne.jp/norinori-hp/
http://www.nyaji.com/
http://putiya.fc2web.com/index.html
http://www.geocities.jp/xmas040207h/
http://webweb.s92.xrea.com/
http://go.fc2.com/s7626/
http://island.moo.jp
http://www.little-anns.com/
http://www.hanahouse.net/
http://foollovers.com/
http://www.tamagochan.com/
http://www.yasuragian.com
http://www.sweetcotton.com/
http://beads.tedukuri-koubou.com/
http://ww5.tiki.ne.jp/~megane/
http://paper-dress.com/
http://www.t-animal.gn.to

リンク切れはご容赦ください。
利用規約を守ってください。

http://885.zombie.jp/
http://effects.if.tv/lostpia/
http://www.crystalcolor.net/station/
http://drop-cafe.net
http://forbidden-fruit.raindrop.jp/
http://kaori.ciao.jp
http://www.goblin-s.com/goblinkingdomhome.html
http://liz.vivian.jp/
http://1kb-sozai.com/
http://www.vpmido.com/
http://park14.wakwak.com/~lunar/
http://candied.cn1.jp/
http://members.jcom.home.ne.jp/norinori-hp/
http://www.nyaji.com/
http://putiya.fc2web.com/index.html
http://www.geocities.jp...続きを読む

Qandroidアプリ開発はMACorWinどっち?

Androidアプリ開発をノートPCで行うため、ノートPCのOSに迷っています。
MacBookAirかWindows、どちらがより良いでしょうか?
懸念点があればお教えください。
また、Android以外の開発をする場合のデメリットなどもあると助かります。

Aベストアンサー

どっちでもいい。
ただしノートは除外する。
開発効率がノートPCだと悪い。
ちなみにエミュレータは重いからノートPCのCPUではきつい。
デスクトップPCのハイエンドモデルがあった方が良い。
それと実機ではなくてエミュレーターでテストするならモニタはマルチディスプレイ必須ですね。
EclipseとAndroidエミュレータを別々の画面で表示してやらないと非効率すぎる。(特にデバッグ時にステップ実行させているときなど)

Q可愛い素材屋さんを探しています。

質問させていただきます。
ブログを始めてだいぶたち、最近プロフィールに似顔絵のように画像を載せたいと思っているのですが、そこに載せられる可愛い画像を扱っている素材屋さんを探しています。
ご存知の方がいらっしゃいましたら情報いただけないでしょうか?
無料の素材屋さんで、「リンクを貼って~。ランクリして~」などの要求がないサイトを教えてください。
あと、プチアイコンでNEW&UPのアイコンを扱っている素材屋さんもあれば教えてください。
どうぞよろしくお願いします。

Aベストアンサー

アイコンも好みがありますからね・・・
お気に入りが見つかるといいですね。

このサイト http://tackysroom.com/ の
 リンク集→オススメの厳選リンク→素材集
をチェックしてみてください。ウェブマスターの方と好みが似ているんで、そのリンク先も自分的にはヒット。

あと、可愛い系ならココと知人から。。。
 http://www22.big.or.jp/~bonbon/ とか
 http://atp.boo.jp/ 小さすぎ? とか
 http://pepper.oops.jp/ これも小さい・・・
 http://pata-anime.jp/
どうかな。

QAndroidアプリの開発手順について

Androidアプリを始めて作ろうとしておりまして、
開発環境や書籍などをしらべているのですが、
なかなか、前に進まずにいます。
Javaやeclipseは多少慣れております。

webで環境を作成しておりますが、一貫したサイトが見つからず、
どこかで、ソフトバージョン違いで、その通りに言いません。
また、本家サイトの説明も自分には高度すぎる感じがします。

一貫して、最新バージョンの環境と、開発、Androidストアへの登録を解りやすく説明している
サイトや本をご存知の方がおられましたら教えてください。
よろしくお願い致します。

Aベストアンサー

「日本Androidの会」のページはご覧になりました?

参考URL:http://www.android-group.jp/

Q可愛いHPって…??

ただ今gooで、HP運営中なんです。
他のHPみたいに写真あったり、とっても可愛いイラストあったり…とそんな素敵なHPが作りたいのですが…
一体どうすれば可愛い壁紙やイラスト、写真がのせられるんですか!?
例えばメインページに自分の写真とかのせたり、自分でアイコンとかも作りたいし…
もっともっと可愛いHPが作りたいのです!!
まだ、1ヶ月と初心者なので分かりやすい説明をぜひお願いします!!

Aベストアンサー

タグ講座のようなことをやっているサイトがgooにもあります。
私もそういうサイトで勉強してタグを覚え、少しずつ変えていきました。
一部はgooならではのルールもあるので、
gooのサイトでタグ講座をやっているところで勉強したらいいと思います。
おすすめのサイト。
http://members.goo.ne.jp/home/hamumayo01
http://members.goo.ne.jp/home/net-office-takahashi/main
少しずつタグを覚えたら、プロバイダーがYahooなら、
ジオシティーズにホームページを作り、
そのサブページをgooにもリンクするなどすると、
もっと好みのサイトになると思います。
gooは大勢の人が見に来てくれるので、
私は普通のサイトをいくつか持っている今も、gooのサイトを持ち続けています。
楽しいですから、ぜひ頑張って少しずつ勉強して、続けてみて下さいね。

Qandroidアプリ開発の広告について

広告収入について。

現在、とある広告会社を利用していますが、
SDKがアップデートされたせいか、コードに埋め込むファイルの容量が大きすぎて使い勝手が悪くなってしましました。
いっその事、他の広告会社に乗り移ろうと考えていますが、android開発をされている方は何処の広告会社を利用していますか?

よく、弊社の広告を利用して下さいといったメールを頂きますが、正直何処の会社がいいのか分かりません。

開発にあまり慣れていないので、出来れば簡単に埋め込みが出来て、
欲を言えばクリック単価の高い会社がいいです。

ちなみに国内向けのアプリしか配信していません。



Media adの広告会社

Aベストアンサー

一番手軽に利用出るのはGoogleがやっているAdMobでしょう。
AdMobに必要なSDK(jar)はAndroidSDKにも含まれているから


人気Q&Aランキング

おすすめ情報