点击即可展开编辑文字

时间:2018-01-04 08:37:47

标签: android animation web webview android-edittext

我有一个edittext,需要在键入时扩展到应用程序的整个宽度,在外部或其他任何地方点击它会恢复到常规大小。 我已经找到了一段代码,它可以满足我的需求,但它不会保留,例如一旦代码结束运行就会反转过程。我正在寻找解决这个问题的方法。另一种方法是这样做,类似的例子是在移动设备上使用网络浏览器时,在输入网址或搜索字词时,网址栏会扩展到全宽。

家庭活动

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.ScaleAnimation;
import android.widget.EditText;

 public class Home extends AppCompatActivity {

public EditText search_bar;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);


   search_bar = (EditText) findViewById(R.id.search_bar);

    }
    public void edit_clicked(View view){

    Animation scaleAnimation = new ScaleAnimation(0, 2, 1, 2);
    scaleAnimation.setDuration(750);
    search_bar.startAnimation(scaleAnimation);
    }

}

1 个答案:

答案 0 :(得分:2)

这样做的动态方式:

   ScaleAnimation animate = new ScaleAnimation(1, 2, 1, 1, Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0);
    animate.setDuration(700);
    animate.setFillAfter(true);
    target.startAnimation(animate);

使用XML的方式

scale.xml(将其放在res / anim文件夹中)

    <scale
        android:duration="400"
        android:fillAfter="true"        
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="0%"
        android:pivotY="0%"
        android:toXScale="2.0"
        android:toYScale="1.0" >
    </scale>

</set>

Java代码

Animation anim = AnimationUtils.loadAnimation(Anims.this, R.anim.scale);
mEdittext.startAnimation(anim);

(或)

简单试试这个

Animation scaleAnimation = new ScaleAnimation(0, -500, 1, 1);
    scaleAnimation.setDuration(750);
    scaleAnimation.setFillAfter(true);
    editText.startAnimation(scaleAnimation);