2013-09-27 4 views
0

Dans mon application, j'utilise une classe TouchImageView pour pincer pour zoomer. J'instancie cette classe de mon xml.Instancier une classe dans xml android

<com.nspl.utility.TouchImageView 
    android:id="@+id/imageViewDoc" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" /> 

TouchImageView étend la classe ImageView.

Maintenant, cette classe est instanciée lorsque la méthode setContentView() est appelée. Mais à un moment donné, je veux réintégrer cette classe. Comment puis-je y parvenir.

Répondre

0

Avez-vous essayé quelque chose dans quelque chose comme ça?

public class TouchImageViewActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     //What you're code might look like now 
     TouchImageView img = (TouchImageView) findViewById(R.id.imageViewDoc); 
     img.setImageResource(R.drawable.snoopy); 
     img.setMaxZoom(4f); 
    } 

    //Method to initiate new instance of class 
    public TouchImageView newTouchImageView(){ 
     return new TouchImageView (this); //This constructor should work 
    } 
} 

Si vous voulez ajouter la nouvelle instance pour dire LinearLayout, vous pouvez faire:

LinearLayout linearLayout = (LinearLayout) findViewById(R.id.image_list); 
TouchImageView img = newTouchImageView(); 
img.setImageResource(R.drawable.another_image); 
img.setMaxZoom(4f); 
linearLayout.addView (img); 

Si vous voulez remplacer l'ancienne vue, je voudrais simplement ajouter le nouveau et appeler layoutParent. removeView (oldTouchImageView);

Questions connexes