java - 如何在android中移动 ImageView

标签 java android

在我的应用程序中,当我单击加号图像时,我想动态移动“加号”图像,它位于我在android中新生成的EditText框旁边,并且我的textview和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 是

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

最佳答案

如果您的意思是在其他框上移动,请创建一个根 FrameLayout,在其中放入 2 个布局:第一个中只有您的加号位于relativelayout 中,第二个中是所有其他框。在加上触摸时添加一个监听器并通过它启动动画。由于加号位于其自己的层中,因此您可以随意移动它。

“它必须从旧位置删除,并在我单击该图像时位于新的 EdiText 框旁边,它会创建新图像,并再次位于新的 EdiText 框旁边”

如果您只想让它在一个地方消失并出现在另一个地方,那么它不必是同一个对象。用一张图像制作两个不同的 View 。并根据需要使其中之一可见,其他不可见。

小心使用 LayoutParams 而不说明它们来自哪个类。它会破坏应用程序。该类应该是父布局的类。例如,LinearLayout.LayoutParams。

关于java - 如何在android中移动 ImageView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9226825/

相关文章:

java - 使用 Mockito 返回 Java 8 可选对象的模拟对象返回空可选

java - 循环遍历字符串来检查值。 (Java计算器)

android - 错误-两个复选框在 ListView 中同时得到检查

java - 按钮点击错误...找不到方法

android - 添加指向从 xml 文件解析的内容的链接

java - 捕获多个异常的处理程序?

java - 将动态 xml 转换为特定格式 xml 的最佳方法是什么

java - 是否有理由为自身以外的类型实现 java.util.Comparable?

android - AccountManager.blockingGetAuthToken() 不提示输入凭据

android - 谷歌.android.gms :play-services-oss-licenses not working after obfuscation