2013-06-08 11 views
5

Ho un layout XML che contiene tutti i miei pulsanti e immagini e voglio una nuvola mobile nella parte superiore del mio layout. così ho creato una vista e reso la mia mossa cloud, tuttavia non potevo collegare la vista con il layout. Ecco il mio codice vistacome aggiungere View to XML layout 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(); 
} 

} 

ed ecco la mia 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; 
} 

} 

Im un principiante di animazione in Android può u spiegare in dettaglio come posso collegare una vista con layout. e se non funzionerà quali altre classi oltre a View che posso usare.

Grazie per il vostro tempo e considerazione. e mi dispiace per il mio pessimo inglese.

+0

Usa il layout gonfiatore per aggiungere nuova vista. – URAndroid

+0

puoi per favore mostrare in codice come utilizzare l'inflater, non l'ho mai usato prima di – Coderji

+0

vedi la risposta qui sotto. – URAndroid

risposta

2

Ecco Link Developer Android potrebbe farmi utile per voi.

Define Custom Attributes

Come definire l'attributo:

Per definire attributi personalizzati, aggiungere le risorse al progetto. È consuetudine mettere queste risorse in un file res/values/attrs.xml. Ecco un esempio di un file attrs.xml:

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

Come utilizzare in 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> 

Leggi per maggiori dettagli seguono.

2

Utilizzare questa:

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

ho bisogno di aggiungere questo su MainActivity o Visualizza attività ?! – Coderji

+0

dov'è l'uomo delle attività di visualizzazione. Devi aggiungere questo in Main Activity. – URAndroid

+0

mi dà PointerNullException. e il mio MainActivity estende Activity non dovrei avere un'altra classe per estendere View per fare l'animazione e importare suDraw. come ho detto im nuovo a questo per favore sii paziente con me e ho inteso CloudView quando ho detto il mio attività View – Coderji

Problemi correlati