2013-09-27 3 views
0

내 응용 프로그램에서 핀치 확대/축소를 위해 클래스 TouchImageView를 사용하고 있습니다. 내 XML에서 그 클래스를 인스턴스입니다.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는 ImageView 클래스를 확장합니다.

이제이 클래스는 setContentView() 메서드가 호출 될 때 인스턴스화됩니다. 그러나 특정 시점에서이 클래스를 다시 인스턴스화하려고합니다. 어떻게해야합니까?

답변

0

시도해 보셨습니까? 당신이있는 LinearLayout을 말할 새 인스턴스를 추가하려면

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

, 당신은 할 수 :

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

당신은 단순히 새로운 하나를 추가하고 layoutParent 부를 것이다 이전 뷰를 교체합니다. removeView (oldTouchImageView);