プロのヒント:Android ImageView の角を丸くするハック - TechRepublic

プロのヒント:Android ImageView の角を丸くするハック - TechRepublic

出版

ウィリアム・J・フランシスの画像

AndroidのImageViewには、デフォルトでは角の半径を設定するオプションがありません。William J. Francisが、レイアウトファイルだけでコードを書かずにこの問題を解決する簡単なハックを公開しています。

Androidフォーラムでよく見かける質問の一つに、「Android標準のImageViewウィジェットの角を丸くするにはどうすればいいですか?」というものがあります。簡単に答えると、丸くする必要はありません。理由は分かりませんが、標準のImageViewコンポーネントには角の半径プロパティがありません。だからといって、丸くできないわけではありません。

ImageView.class を拡張し、独自の属性を追加し、元のビットマップを変更し、on draw をオーバーライドしてキャンバスに画像をペイントする方法については、多くの投稿があります。しかし、正直に言って、本来「自動的に」行われるべき処理としては、かなり手間がかかります。

ImageViewの角をXMLから直接丸める、巧妙なハックを見つけました。FrameLayoutとXMLドローアブルを利用しています。以下の短いチュートリアルで解説しています。そのまま進めるか、プロジェクトをダウンロードしてEclipseに直接インポートしてください。

1. Eclipse で SDK 14 (ICS) 以上をターゲットとした新しい Android プロジェクトを作成します。

2. /res/drawable フォルダに frame.xml ファイルを作成します。このファイルでは、角が丸く、中央が透明なシンプルな長方形を定義します。

frame.xml




3. /res/drawable-xhdpi フォルダに、ImageView のソースとして使用したい画像を含めます。私の場合は、TechRepublic のロゴを切り取って貼り付けました。

4. /res/layout フォルダ内のactivity_main.xml を変更します。その中に、標準の ImageView とネストされた FrameLayout を含む LinearLayout があります。FrameLayout は、パディングとカスタム描画オブジェクトを使用して、角が丸く見えるようにしています。

activity_main.xml

これで完了です。生成されたJavaコードに変更を加える必要はありません。ぜひご自身でご確認ください。

記事をシェア

こちらもご覧ください

  • プロのヒント: Androidセンサーを使用して方向の変化を検出する
  • プロのヒント: Android の TextView を拡張してカスタムフォントを使用する
  • プロのヒント: パーティクルエフェクトを使ってAndroidアプリのユーザーを驚かせ、楽しませましょう
  • プロのヒント:このカスタマイズトリックでAndroidのボタンを美しくしましょう
ウィリアム・J・フランシスの画像

ウィリアム・J・フランシス

ウィリアムは自称「メーカー」です。20年以上の業界経験を持ち、世界有数の有名ブランドのデジタルソリューション構築に携わってきました。著書も出版しており、特許取得済みの発明家であり、短期間ながらAmazonで1位を獲得したビデオゲームの開発者でもあります。

Tagged: