حرکت خودکار متن تکست ويو

0 امتیاز
148 بازدید
سوال شده آذر 15, 1394 توسط sajjadfcb  
برچسب گذاری دوباره آذر 17, 1394 توسط ASHKARAN
سلام استاد خسته نباشيد. من ميخوام متن TextView رو به صورت خودکار حرکت بدم. توى اکتيويتى يک Button و يک TextView دارم.ميخوام وقتى روى button کليک شد يک Alert Dialog باز بشه و چهار تا گزينه داشته باشه (کند،متوسط،تند،غيرفعال) که وقتى روى کند کليک شد متن به آرامى حرکت کنه ،و متوسط و تند هم به همين صورت ، و وقتى روى غير فعال کليک شد متن حرکت نکنه . ممنون
این مطلب را به اشتراک بگذارید

1 پاسخ

0 امتیاز
پاسخ داده شده آذر 17, 1394 توسط ASHKARAN  
انتخاب شده آذر 24, 1394 توسط ASHKARAN
 
بهترین پاسخ

با عرض سلام و احترام پروژه جدیدی ایجاد فرموده و کدهای زیر را در فایل activity_main.xaml  قرار دهید

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

     <Button
         android:id="@+id/controlbtn"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignLeft="@+id/textView1"
         android:layout_alignParentTop="true"
         android:layout_alignRight="@+id/textView1"
         android:text="Control" />
     
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/controlbtn"
        android:background="#f1f1f1"
        android:lineSpacingExtra="5dp"
        android:padding="5dp"
        android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum sit amet pulvinar augue. Quisque blandit suscipit justo mattis condimentum. Phasellus interdum consectetur placerat. Nulla non suscipit libero, et congue ligula. Curabitur vitae tellus eu erat aliquet varius eu et ex. In turpis enim, tempor blandit porttitor ac, blandit at lectus. Vestibulum vitae maximus erat. Aliquam erat volutpat. Cras a ex eleifend tellus gravida fringilla sed eget massa. Nullam condimentum suscipit quam ut gravida. Sed quis elit justo. Sed a nisi tellus. Aenean tempor et dui id vestibulum. In hac habitasse platea dictumst.
        Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc vel quam in orci venenatis dapibus. Cras vitae lectus felis. Integer quis porttitor ligula, at porttitor orci. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Pellentesque vel nunc malesuada, rutrum quam at, condimentum ligula. Mauris ac metus sem. Maecenas porttitor tortor nibh, sit amet gravida tortor posuere id. Nulla felis purus, sagittis ut ultricies id, rutrum id turpis. Nullam ut ipsum vel leo fermentum fermentum. Mauris erat mauris, euismod id nibh egestas, semper porta enim. Mauris condimentum volutpat leo, eu maximus odio tempor at. Aenean non purus mollis, consectetur felis vel, semper enim. Aenean in iaculis erat, vitae fringilla nibh.
        Nunc rhoncus risus in metus consectetur, eget cursus nulla accumsan. Praesent id fermentum diam, eget pulvinar metus. Sed vel lobortis augue. In volutpat risus non quam ullamcorper, non lobortis dui pulvinar. Praesent id sodales lacus. Aliquam erat volutpat. Fusce consectetur enim in felis vehicula sagittis. Nullam fermentum, arcu id pellentesque iaculis, nunc neque dictum odio, ac mattis ipsum leo a dui.
        Proin nunc lorem, mattis non facilisis et, tempor ut nunc. Quisque eget tempor odio. Vivamus justo lacus, semper eu ipsum sed, gravida lacinia augue. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam sodales, nulla sed scelerisque bibendum, quam diam scelerisque purus, ac elementum ligula nisi non ex. Maecenas et erat nec eros elementum mattis nec eu mauris. Etiam blandit, urna vitae volutpat sollicitudin, odio augue sodales eros, id consequat tortor nibh non lacus. Etiam eu augue nec felis pulvinar gravida eu vel enim. Maecenas tincidunt eleifend augue a rutrum. Nulla interdum gravida leo, nec lacinia est. Nulla sed velit pellentesque, pharetra erat sed, hendrerit libero. Fusce tincidunt erat id consectetur ullamcorper. Maecenas a metus id nibh pharetra semper. Ut sed massa ipsum.
        Nulla bibendum, justo ut tristique tempor, tellus quam pretium nulla, a aliquet odio erat id ipsum. Integer mollis mollis nunc sit amet fringilla. Nunc nisi ante, eleifend eget lorem a, ullamcorper pellentesque arcu. Etiam mattis sem nulla, vitae placerat ligula bibendum non. Nulla facilisi. Cras at diam lacus. Sed rhoncus dapibus est, et pellentesque turpis placerat ut. Praesent rutrum est porta purus tincidunt, id molestie sem vehicula. Nulla sed venenatis erat. Sed dignissim, risus vitae iaculis rutrum, turpis purus convallis risus, sed sollicitudin magna elit at nibh. Nunc et tortor in purus condimentum viverra. Maecenas at ante non est posuere vulputate. Nullam faucibus quam tristique, sollicitudin turpis sed, luctus magna. Phasellus sed dignissim neque. Curabitur consequat commodo augue, eget aliquam ligula facilisis ut. Duis eleifend augue eu viverra maximus."
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

 

 

و از کد زیر در MainActivity.java استفاده بفرمایید:

package com.example.xx;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.text.method.ScrollingMovementMethod;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

	 final int CONTEXT_MENU_STOP   = 1;
	 final int CONTEXT_MENU_SLOW   = 2;
	 final int CONTEXT_MENU_MEDIUM = 3;
	 final int CONTEXT_MENU_FAST   = 4;
	 Boolean   SCROLL              = false;
	 Handler   HANDLER;
	 int DELAY                     = 0;
	 int SCROLLAMOUNT              = 100;
	 int SCROLLPOSITION            = 0;
	 Button controlBtn ;
	 TextView textView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		controlBtn = (Button)findViewById(R.id.controlbtn);
		textView   = (TextView)findViewById(R.id.textView1);
		HANDLER    = new Handler();
		
		textView.setMovementMethod(new ScrollingMovementMethod());
		controlBtn.setOnClickListener(new android.view.View.OnClickListener() 
		{

		    public void onClick(View v) 
		    {
		        registerForContextMenu(v);
		        openContextMenu(v);

		    }
		});
		
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				 
				while(true){
					try {
						Thread.sleep(DELAY);
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					if(!SCROLL)
						continue;
					
					runOnUiThread(new Runnable() {
						
						@Override
						public void run() {
							
							SCROLLPOSITION += SCROLLAMOUNT;
							textView.scrollTo( 0 , SCROLLPOSITION );
							
						}
					});
				}
			}
		}).start();
		  
	}

	@Override
	 public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) {
	  //Context menu
	  menu.setHeaderTitle("Scroll Controller");          
	  menu.add(Menu.NONE, CONTEXT_MENU_STOP   , Menu.NONE, "Stop"   );
	  menu.add(Menu.NONE, CONTEXT_MENU_SLOW   , Menu.NONE, "Slow"   );
	  menu.add(Menu.NONE, CONTEXT_MENU_MEDIUM , Menu.NONE, "Medium" );
	  menu.add(Menu.NONE, CONTEXT_MENU_FAST   , Menu.NONE, "FAST"   );
	  
	 }

	@Override
	public boolean onContextItemSelected(MenuItem item) {
	    // TODO Auto-generated method stub
	    switch(item.getItemId())
	    {
	    case CONTEXT_MENU_STOP:
	    {
	    	 SCROLL = false;
             break;
	    }
	  
	    case CONTEXT_MENU_SLOW:
	    {
	    	
	    	SCROLL = true;
	        DELAY = 10000;
            break;
	    }
	      
	    case CONTEXT_MENU_MEDIUM:
	    {
	    	SCROLL = true;
	        DELAY = 5000;
            break;
	    }
	    case CONTEXT_MENU_FAST:
	    {
	    	SCROLL = true;
	        DELAY = 2000;
            break;
	    }
	       
	    }

      extItemSelected(item);
	}
	
	
	 	  
}

 

در این کد بنده از Threading  استفاده کردم که مطمئنن تنها ترین  و بهترین روش نیست....

شما می توانید از راه های دیگر نیز این کار را انجام دهید....

دارای دیدگاه آذر 18, 1394 توسط sajjadfcb  
سلام استاد من میخوام توی تکست ویو ، اسکرول ویو بذارم (چون توی حالت معمولی مثل اسکرول ویو عمل نمی کنه وبه صورت روان پایین وبالا نمیره)ولی وقتی اسکرول ویو میذارم هر خط که میره بالا دیگه ناپدید میشه ووقتی بکشی پایین دیگه متن پایین نمیاد.چطور میشه درستش کرد.
دارای دیدگاه آذر 20, 1394 توسط ASHKARAN  
با عرض سلام

شما نمی تونید توی TextView ‌یک ScrollView ‌قرار بدید.....

در صورتی که تمایل به استفاده از ScrollView ‌دارید باز هم بیشتر مراحل کار شبیه به کدهای بالاست....

تنها به جای تغییر موقعیت TextView ‌باید ScrollView ‌رو تغییر بدید.....

کمی بیشتر روش کار کنید به جواب می رسید ....
دارای دیدگاه آذر 20, 1394 توسط sajjadfcb  
ممنون استاد.

797 سوال

726 پاسخ

1,222 دیدگاه

450 کاربر

متاسفانه نیستم

این مطلب را به اشتراک بگذارید

ali.ashkaran@gmail
ما .....
  • سعی بر پاسخگویی به سوالات دیگران داریم.
  • به سوال و یا نظر دیگران احترام می گذاریم .
  • این وبسایت را به دیگران معرفی می کنیم.
  • همواره صمیمیت و ادب را رعایت می کنیم.
  • به سوالمان برچسب های مرتبط اضافه می کنیم.
  • در حین طرح سوال فرد خاصی را مخاطب قرار نمی دهیم .
...