2011-12-09 9 views
2

Androidプロジェクトが正しくコンパイルされ、電話機とエミュレータの両方で正常に動作し、LinearLayouts、TextViews、Buttons、Images、カスタムViewコンポーネントしかし、それが形になると、単にそれを見つけることができません。AndroidManifest:不明な「shape」XML要素を無視する

HERESに私のコード:

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

    <solid android:color="#ffffff"/>  

    <stroke android:width="3dp" 
      android:color="#ff000000"/> 

    <padding android:left="1dp" 
      android:top="1dp" 
      android:right="1dp" 
      android:bottom="1dp"/> 

    <corners android:radius="30dp"/> 
</shape> 

そして、私はEclipseでグラフィカルなレイアウトで取得エラー:

com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup 
Exception details are logged in Window > Show View > Error Log 
The following classes could not be found: 
- shape (Fix Build Path, Edit XML) 
- solid (Fix Build Path, Edit XML) 

私は、Android 2.2フローズンヨーグルトGoogleのAPIをターゲットにしています。

提案?

+1

私の頭の上からちょうど外に、このXMLのファイルをres/drawableディレクトリに入れましたか? – dbryson

+0

いいえ、res/layout。 res/drawableはイメージ用だと思った?どのようにxmlレイアウトで四角形を描くのですか? – Ring

答えて

10

このXMLを間違った場所に置いているため、おそらくエラーが発生しています。上記のXMLはres/drawableディレクトリにあります。レイアウトには正方形を描くべきではありません。ビューに正方形を描き、それをレイアウトに追加します。または、イメージを使用してImageView経由でビューに追加します。レイアウトは、ビューの集約です。レイアウト(ViewGroup)に正方形を描画したい場合は、それを拡張してonDraw()メソッドで描画することができます。しかし、それはおそらく必要以上に複雑になるでしょう。レイアウト上のAndroidドキュメントを見てみましょう:http://developer.android.com/guide/topics/ui/index.html

+0

あなたの助けを借りて、正方形の描画コードをres/drawableのxmlファイルに入れてしまい、それをImageViewとしてレイアウトに追加しました。ありがとう。 私はもう1つの問題を抱えています。もしあなたがそれを知りたいのであれば: http://stackoverflow.com/questions/8440983/draw-square-behind-text – Ring

関連する問題