2012-02-10 9 views
0

私のアプリケーションでは、プラスのイメージをクリックしたときにプラスのイメージを動的に移動したいのですが、アンドロイドの新しいEditTextボックスとテキストビューとエディットボックスの両方が動的に新しい行私のイメージを見てください。私はそれを一列にしたい。イメージビューをアンドロイドで移動するには

マイコード:

package com.test; 

import android.app.Activity; 
import android.os.Bundle; 
import android.text.Editable; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup.LayoutParams; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 
import android.widget.TextView; 
import android.widget.Toast; 

public class Test_testActivity extends Activity { 
    /** Called when the activity is first created. */ 
    private LinearLayout mLayout; 
    private EditText mEditText; 
    private ImageView mButton; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     mLayout = (LinearLayout) findViewById(R.id.linearLayout1); 
     mButton = (ImageView) findViewById(R.id.imageView1); 
     mButton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       //mButton.setVisibility(Button.GONE); 
       mLayout.addView(createEditText());    
       mLayout.addView(seconftext());  
      } 
     });  
    } 
    private EditText createEditText() 
    { 
     final LayoutParams lparams = new LayoutParams(150,100); // Width , height 
     final EditText edittext = new EditText(this); 
     edittext.setLayoutParams(lparams); 
     return edittext; 
    } 
    private TextView seconftext() 
    { 
     final LayoutParams iparams = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
     final TextView tv = new TextView(this); 
     tv.setLayoutParams(iparams); 
     tv.setText("Second"); 
     return tv; 
    } 
} 

および.xmlを使用すると、他のボックスの上に周りの動きを意味する場合は、ルートでframeLayoutを作る

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
     android:id="@+id/linearlayout"> 
    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:background="#00ffff"> 
     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/plus" /> 
    </LinearLayout> 
    <ScrollView 
     android:id="@+id/scrollView1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <LinearLayout 
      android:id="@+id/linearLayout1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 
     </LinearLayout> 
    </ScrollView> 
</LinearLayout> 

enter image description here

+0

動的に移動するとはどういう意味ですか?すべての動きはダイナミックです。 – Gangnus

+0

私がプラスのイメージをクリックすると、それは私に新しいEditextを与えますが、イメージは同じ場所に残ります。私は新しいEdiTextボックスの横にそれを望みます。 –

+0

あなたは新しい場所または同じ場所でそれをしたいですか?そして、あなたはなぜその運動を力学的に呼びますか? – Gangnus

答えて

1

で、中2つのレイアウトを置きますそれは最初に、RelativeLayoutにはあなたのプラスだけ、他のすべてのボックスにはプラスだけがあります。プラスタッチでリスナーを追加し、それによってアニメーションを起動します。プラスはそれ自身のレイヤーにあるので、望むように移動することができます。

あなただけそれが中に消えたい場合

「古いpostitionから取り出して、私はそれに加えて、画像をクリックすると、新しいEdiTextボックスの横に来て、それが新しいイメージを作成して、再び新しいEdiTextボックスの横に来なければなりません」 1つの場所と別の場所に表示され、同じオブジェクトである必要はありません。 1つの画像で2つの異なるビューを作成します。そして必要に応じて、それらのうちの1つを目に見えるようにし、目に見えないものにします。

LayoutParamsは、どのクラスから来たのかを知らずに使用してください。それはアプリケーションを粉砕する。クラスは親レイアウトのクラスでなければなりません。たとえば、LinearLayout.LayoutParamsです。

+0

私は試しましたが、起こっていません –

+0

質問アクティビティをレイアウトに接続するところで、可視性とレイアウトを変更します。 – Gangnus

+0

コードがあります。それに対して+1。 ----通常、疑問のコードが本当に必要ない場合でも、問題のコードを入れないためにここに下線を引いています。 ---編集した答えの一番下にあるコードを読んでください。 – Gangnus