2013-06-08 25 views
5

Tüm düğmelerim ve resimlerimi içeren bir XML düzenine sahibim ve düzenimin en üstünde hareketli bir bulut olmasını istiyorum. böylece bir görünüm oluşturdum ve bulutumu hareket ettirdim, ancak görünümü düzen ile ilişkilendiremedim. İşte benim bakış koduXML düzenine bakış android oluştur

burada
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(); 
} 

} 

ve u ı düzeni Görünüm bağlayabilirsiniz nasıl ayrıntılarda açıklayabilir

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; 
} 

} 

Im benim MainActivity android animasyon yeni. ve eğer çalışmazsa View diğer sınıflar kullanabilirim.

Zaman ayırdığınız ve düşündüğünüz için teşekkür ederiz. ve kötü ingilizcem için özür dilerim.

+0

Kullanım düzeni inflater yeni görünümü eklemek. – URAndroid

+0

kodda nasıl kullanacağınızı gösterebilir, daha önce hiç kullanmadım – Coderji

+0

aşağıdaki cevaba bakınız. – URAndroid

cevap

2

İşte Android Geliştirici Linkin, sizin için yararlı olabilir.

Define Custom Attributes

niteliğini tanımlamak için:

, özel öznitelikler tanımlamak projenize kaynaklar eklemek için. Bu kaynakları res/values/attrs.xml dosyasına koymak olağan bir durumdur. Daha fazla ayrıntı takip ediyorsunuz için

<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> 

nasıl 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> 

okuyun kullanmak: İşte bir attrs.xml dosyası örneği var.

2

bunu kullanın:

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

Bunu MainActivity veya View etkinliğine eklemem gerekiyor mu ?! – Coderji

+0

View Etkinliğiniz nerede? Bunu Ana Etkinliğe eklemelisiniz. – URAndroid

+0

bana PointerNullException veriyor. ve benim MainAktivite genişletir Aktivite, animasyon yapmak ve onDraw içe aktarmak için Görünümü genişletmek için başka bir sınıfa sahip olmamalıdır. Bu konuda yeni olduğum gibi lütfen benimle sabırlı olun ve ViewView aktivitesi – Coderji