2013-06-08 6 views
5

私は自分のボタンと画像をすべて含んだXMLレイアウトを持っています。私は自分のレイアウトの上に動く雲が欲しいです。だから私はビューを作成し、私の雲を動かしましたが、私はレイアウトとビューをリンクできませんでした。ここでの私の見解コードがXMLレイアウトにビューを追加する方法android

public class CloudView extends View { 

Bitmap cloud; 
int ChangingX; 


public CloudView(Context context) { 
    // TODO Auto-generated constructor stub 
    super(context); 
    cloud = BitmapFactory.decodeResource(getResources(), R.drawable.cloud); 
    ChangingX = 50; 

} 

@Override 
protected void onDraw(Canvas canvas) { 
    // TODO Auto-generated method stub 
    super.onDraw(canvas); 
    canvas.drawBitmap(cloud, ChangingX , 50, null); 
    if (ChangingX < canvas.getWidth()) 
     ChangingX += 2; 
    else 
     ChangingX = 50; 
    invalidate(); 
} 

} 

と、ここで私のMainActivityが

ある
public class MainActivity extends Activity { 

CloudView myView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    myView = new CloudView(this); 
    setContentView(myView); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

} 

アンドロイドでアニメーションの新しいイムuが私はレイアウトとビューをリンクする方法を詳細に説明することができます。 と私は使用できるビュー以外のどのような他のクラスを動作しない場合。

お時間をいただきありがとうございます。私の悪い英語には申し訳ありません。

+0

使用レイアウトインフレータは、新しいビューを追加します。 – URAndroid

+0

あなたはインフレータを使用する方法をコードで教えてください、私は – Coderji

+0

の前にそれを使用したことはありません以下の答えを参照してください。 – URAndroid

答えて

2

ここはAndroidデベロッパーリンクがあなたに役立つかもしれません。

をカスタム属性を定義するには、プロジェクトにリソースを追加:属性を定義する方法

Define Custom Attributes

。これらのリソースをres/values/attrs.xmlファイルに入れるのが通例です。詳細は従わないためXML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:custom="http://schemas.android.com/apk/res/com.example.customviews"> 
<com.example.customviews.charting.PieChart 
    custom:showText="true" 
    custom:labelPosition="left" /> 
</LinearLayout> 

読むに使用する方法

<resources> 
    <declare-styleable name="PieChart"> 
     <attr name="showText" format="boolean" /> 
     <attr name="labelPosition" format="enum"> 
      <enum name="left" value="0"/> 
      <enum name="right" value="1"/> 
     </attr> 
    </declare-styleable> 
</resources> 

:ここattrs.xmlファイルの例です。

2

使用この:

View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.activity_my_vault, null,false); 
     this.addContentView(viewToLoad); 
+0

これをMainActivityまたはViewアクティビティに追加する必要がありますか? – Coderji

+0

あなたのビューアクティビティの男性はどこですか?メインアクティビティでこれを追加する必要があります。 – URAndroid

+0

それは私にPointerNullExceptionを与えます。私のMainActivityはアクティビティを拡張するべきではありません。アニメーションを行い、onDrawをインポートするためにViewを拡張する別のクラスが必要です。私が私のことを言ったように私は私に忍耐強くお待ちしており、私はあなたのビューアクティビティ – Coderji

関連する問題