Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在线性布局中拖动时更改TexView的文本大小_Java_Android_Xml - Fatal编程技术网

Java 如何在线性布局中拖动时更改TexView的文本大小

Java 如何在线性布局中拖动时更改TexView的文本大小,java,android,xml,Java,Android,Xml,我有一个线性布局,其中包含了文本视图的数量。如果我们触摸每个文本视图,它会改变其文本大小 我想这样做,如果我在第一个触摸,并保持在线性布局拖动,而不拉我的手指了。有我手指的TextView应该改变它的大小,如果我把它从TextView上拖开,它的大小应该会恢复正常,依此类推 我的主要活动是: public class MainActivity extends Activity implements OnTouchListener{ @Override protected voi

我有一个线性布局,其中包含了文本视图的数量。如果我们触摸每个文本视图,它会改变其文本大小

我想这样做,如果我在第一个触摸,并保持在线性布局拖动,而不拉我的手指了。有我手指的TextView应该改变它的大小,如果我把它从TextView上拖开,它的大小应该会恢复正常,依此类推

我的主要活动是:

public class MainActivity extends Activity implements OnTouchListener{

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

        TextView firstText, secondText;
        firstText = (TextView) findViewById(R.id.firstTextView);
        secondText = (TextView) findViewById(R.id.secondTextView);

        firstText.setOnTouchListener(this);
        secondText.setOnTouchListener(this);

    }


    @Override
    public boolean onTouch( View v, MotionEvent event ) {

        switch(event.getAction() & MotionEvent.ACTION_MASK) {

            case MotionEvent.ACTION_DOWN:
            case MotionEvent.ACTION_POINTER_DOWN:
                ((TextView) v).setTextSize(40);
                break;

            case MotionEvent.ACTION_CANCEL:
            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_POINTER_UP:

                ((TextView) v).setTextSize(20);
                break;
        }
        return false;
    }

}
xml是:

<LinearLayout
        android:id="@+id/ll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/btn_bg"
        android:orientation="horizontal"
        android:weightSum="0.9" >

        <TextView
            android:id="@+id/firstTextView"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:text="@string/hello_world" />

        <TextView
            android:id="@+id/secondTextView"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:text="@string/hello_world"/>
    </LinearLayout>
请帮忙。我想要的行为,如果我触摸firstTextView,它的大小我长大了,当手指超出firstTextView的范围时,我的手指移向secondTextView,它的文本大小变得正常,在不拔下手指的情况下,我继续移向secondTextView,每当我的手指进入secondTextView的范围时,它的大小都会改变


问题是当finger进入secondTextView时,它不会生效。

您可以在textView上调用setOnTouchListener。然后根据您希望大小增长的方式,使用传入的触摸事件上的字段记录触摸时间或移动的距离,以更改文本视图的大小。

任何教程都会非常有用。提前感谢为TextView使用setonTouchListener方法。我认为本教程会有所帮助@Piyush请查看我的编辑以进一步澄清。@Ahmed bhai我不想替换我的TextView,我只需要在线性布局中突出显示拖动事件中TextView的文本。请参阅我的编辑代码。谢谢你的快速回复