انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#1
سلام دوستان
شرمنده بازم مزاحم میشم

میخواستم برای آیتم های گرید ویوم یک انیمیشن چرخش بزارم به صورتی که وقتی روش کلیک شد (انتخاب شد) باتنم دور خودش بچرخه

ممنون میشم یک توضیح کلی بدید که باید چیکار کنم
پاسخ

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#2
سلام
به این لینک  نگاهی بی اندازید

http://www.kelidestan.com/keys/keys.php?key=2312
 
همچنین برای اینکار ابتدا در فایل XML یک دکمه (Button ) و یک SeekBar درست کنید . سپس بعد از تعریف این دو شئ باید setOnSeekBarChangeListener تعریف کنید که با تغییر  Seek Bar  دکمه چرخش داشته باشد

کد پی‌اچ‌پی:
public class MainActivity extends Activity {
Button  Rotate;
@
Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
  
Rotate = (ButtonfindViewById(R.id.button1);
SeekBar SK = (SeekBarfindViewById(R.id.seekBar1);
SK.setMax(360);
SK.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@
Override
public void onStopTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
}
@
Override
public void onStartTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
}
@
Override
public void onProgressChanged(SeekBar arg0int arg1boolean arg2) {
Rotate.setRotation((float)arg1);
}
});


که این کد میگه که بعد از انخاب باتن 360 درجه می چرخه

کد پی‌اچ‌پی:
SK.setMax(360); 
 
فهمیدن بهتر از دانستن است.
پاسخ
 سپاس شده توسط admin ، esmail3309

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#3
یک دنیا ممنون
همون کلید شماره 2312 رو که گفتید رو تغیرش دادم و فقط یه باتن تو لایوتش موند. اینم اکتیویتیش:

کد پی‌اچ‌پی:
public class MainActivity extends Activity {
    private 
Button myimage;
    
    
   @
Override
   
protected void onCreate(Bundle savedInstanceState) {
      
super.onCreate(savedInstanceState);
      
setContentView(R.layout.activity_main);
      
   
      
      
myimage = (ButtonfindViewById(R.id.rotate);
      
myimage.setOnClickListener(new OnClickListener() {
        @
Override
        
public void onClick(View v) {
            
rotateAnimation(v);
            
startActivity(new Intent(getApplication(), MoveActivity.class));

        }
      });
   }

   private 
void rotateAnimation(View view) {
       
Animation animation AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotate);
       
myimage.startAnimation(animation);
   }} 

الان همه چیز درسته فقط:
1- الان چطور میتونم Intent رو به تاخیر بندازم که باتن فرصت کامل برای چرخیدن رو داشته باشه؟؟
2- چطور میتونم در گرید ویو از این کد ها برای چرخش آیتم هام استفاده کنم؟
 
پاسخ
 سپاس شده توسط s.saeid

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#4
دوست عزیز برای تاخییر انداختن. کافیه بعد از rotateAnimation  از دستور مکث کردن زیر استفاده کنید.

کد پی‌اچ‌پی:
Thread.sleep(2000); 

با این دستور ،برنامه سعی میکند 2 ثانیه اگر توانست مکث کند و بعد خط بعد اجرا میشود.این خط باید درtry نوشته شود..کافیه خط بالا رو بنویسید بعد خوده اکلیپس به شما میگوید باید این دستور در try _catchقرار بگیره..
درمورده سوال دومتون هم..شما از این انیمیشن میتونید روی view های مختلف  استفاده کنید..
کافیه متد بالا رو توی دست itemClicklisiner   گرید ویو خودتون قرار بدید..یعنی زمانی که آیتم گرید ویو کلیک شد .این انیمیشن اجرا بشود
پاسخ
 سپاس شده توسط esmail3309 ، admin ، s.saeid

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#5
(۱۳۹۳/۱۲/۲۵, ۰۷:۰۱ ب.ظ)'داش بهروز' نوشته: دوست عزیز برای تاخییر انداختن. کافیه بعد از rotateAnimation  از دستور مکث کردن زیر استفاده کنید.
کد پی‌اچ‌پی:
Thread.sleep(2000); 
با این دستور ،برنامه سعی میکند 2 ثانیه اگر توانست مکث کند و بعد خط بعد اجرا میشود.این خط باید درtry نوشته شود..کافیه خط بالا رو بنویسید بعد خوده اکلیپس به شما میگوید باید این دستور در try _catchقرار بگیره..
درمورده سوال دومتون هم..شما از این انیمیشن میتونید روی view های مختلف  استفاده کنید..
کافیه متد بالا رو توی دست itemClicklisiner   گرید ویو خودتون قرار بدید..یعنی زمانی که آیتم گرید ویو کلیک شد .این انیمیشن اجرا بشود
 

منظورتون به این صورته دیگه آره؟

کد پی‌اچ‌پی:
myimage = (ButtonfindViewById(R.id.rotate);
      
myimage.setOnClickListener(new OnClickListener() {
        @
Override
        
public void onClick(View v) {
            
rotateAnimation(v);
            try {
                
Thread.sleep(2000);
            } catch (
InterruptedException e) {
                
// TODO Auto-generated catch block
                
e.printStackTrace();
            }
            
startActivity(new Intent(getApplication(), MoveActivity.class));
        }
      });
   } 

ولی نشد!!
یعنی دکمه رو که انتخاب میکنم تا دو ثانیه هیچ اتفاقی نمیفته بعدش هم انیمیشن هم intent با هم اجرا میشم درواقع هیچ فرقی نکرد.
پاسخ
 سپاس شده توسط داش بهروز

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#6
سلام.
با استفاده از کلید زیر، تعیین کنید که کد مربوط به رفتن به Activity جدید، بعد از 2 ثانیه اجرا شود :

کلید شماره 2610


 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط داش بهروز ، s.saeid ، esmail3309

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#7
بله شما درست میگید..بنده یه چیزی فراموش کردم اینکه برای مکث کردن برای UI باید از

کد پی‌اچ‌پی:
runOnUiThread(new Runnable() {
            @
Override
            
public void run() {
                
// Do some stuff
            
}
        }) 

یعنی یه جورایی ارتباط برقرار کنه..اگر دستور بالا رو میخوایید بنویسید باید یه thread تعریف کنید.و که برای کار شما مناسب نیست..بهتره از روشی که آدمین جان استفاده کنید...یا روش زیر که خیلی خوبه و مناسب برای این نوع کار شما...

کد پی‌اچ‌پی:
myimage.setOnClickListener(new OnClickListener() {
        @
Override
        
public void onClick(View v) {
            
rotateAnimation(v);
            
v.postDelayed(new Runnable() { public void run() { 
                
                    
startActivity(new Intent(getApplication(), MoveActivity.class));
            } }, 
3000);
            
          
        }
      }); 

که به مدت سه ثانیه مکث میکند.و بعد از این مدت متدهای داخل Run اجرا میشود.

پاسخ
 سپاس شده توسط admin ، esmail3309

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#8
(۱۳۹۳/۱۲/۲۵, ۰۸:۵۲ ب.ظ)'داش بهروز' نوشته: بله شما درست میگید..بنده یه چیزی فراموش کردم اینکه برای مکث کردن برای UI باید ازیعنی یه جورایی ارتباط برقرار کنه..اشما...


 

 


لطفا پیام خصوصیتونو چک کنید
 
پاسخ

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#9
سلام
کدم رو اینطور کامل کردم:

کد پی‌اچ‌پی:
    gridView = (GridViewfindViewById(R.id.gridView1);
        
customGridAdapter = new CustomGridViewAdapter(thisR.layout.row_gridgridArray);
        
gridView.setAdapter(customGridAdapter);
        

      
gridView.setOnItemClickListener(new OnItemClickListener(){  
          @
Override
          
public void onItemClick(AdapterView<?> arg0, final View arg1, final int arg2, long arg3) {
              rotateAnimation(arg1);
              arg1.postDelayed(new Runnable() { public void run() { 
              Intent intent = new Intent();
              switch(arg2){
                    
                    case 0: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 1: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 2: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 3: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 4: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 5: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 6: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 7: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 8: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;}                  
                    case 9: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 10: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                }}}, 2000);
                }
      
            });
    }
              private void rotateAnimation(View view) {
                  
                   Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotate);
                   
                   view.startAnimation(animation); 
               } 
           } 

الان همه چیز درسته
فقط یه مشکل کوچیکی داره
اونم اینه که وقتی یک آیتم انتخاب میشه میچرخه و بعد دو ثانیه که میخواد وارد اکتیویتی دیگری بشه همون آیتم دباره میاد بچرخه ولی intent اجرا میشه نمیزاره که آیتم خیلی بچرخه!!!
درسته مشکل کوچیکیه ولی یکم کارو خراب میکنه.
ممنون میشم راهنمایی کنید

یه چیز دیگه:فونت متن آیتم های گرید ویو رو چطور میتونم تغیر بدم؟
پاسخ

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#10
دوست عزیز من سوال اول دقیق متوجه نشدم..دوثانیه مکث میکنه بعدش میره داخل اکتیوتی دیگه..خب مشکل دقیق چیه الان؟..
در مورده سوال دوم هم..مانند تغییر فونت سایر تکست ویو ها میشه واسه آیتم گرید ویو یا هرچیز دیگه ای رو تغییر بدید..
که در سایت توضیح داده شده.
پاسخ
 سپاس شده توسط admin

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#11
(۱۳۹۳/۱۲/۲۸, ۱۰:۰۲ ق.ظ)'esmail3309' نوشته: سلام
کدم رو اینطور کامل کردم:

کد پی‌اچ‌پی:
    gridView = (GridViewfindViewById(R.id.gridView1);
        
customGridAdapter = new CustomGridViewAdapter(thisR.layout.row_gridgridArray);
        
gridView.setAdapter(customGridAdapter);
        

      
gridView.setOnItemClickListener(new OnItemClickListener(){  
          @
Override
          
public void onItemClick(AdapterView<?> arg0, final View arg1, final int arg2, long arg3) {
              rotateAnimation(arg1);
              arg1.postDelayed(new Runnable() { public void run() { 
              Intent intent = new Intent();
              switch(arg2){
                    
                    case 0: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 1: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 2: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 3: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 4: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 5: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 6: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 7: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 8: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;}                  
                    case 9: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                    case 10: {rotateAnimation(arg1);
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;} 
                }}}, 2000);
                }
      
            });
    }
              private void rotateAnimation(View view) {
                  
                   Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotate);
                   
                   view.startAnimation(animation); 
               } 
           } 

الان همه چیز درسته
فقط یه مشکل کوچیکی داره
اونم اینه که وقتی یک آیتم انتخاب میشه میچرخه و بعد دو ثانیه که میخواد وارد اکتیویتی دیگری بشه همون آیتم دباره میاد بچرخه ولی intent اجرا میشه نمیزاره که آیتم خیلی بچرخه!!!
درسته مشکل کوچیکیه ولی یکم کارو خراب میکنه.
ممنون میشم راهنمایی کنید

یه چیز دیگه:فونت متن آیتم های گرید ویو رو چطور میتونم تغیر بدم؟

 

روش rotateAnimation را دو بار نوشته اید، یک بار اینجا :

کد پی‌اچ‌پی:
public void onItemClick(AdapterView<?> arg0, final View arg1, final int arg2, long arg3) {
    rotateAnimation(arg1); 

و بار دوم، در خود case ها، مثلا :

کد پی‌اچ‌پی:
case 0: {rotateAnimation(arg1); 

بنابراین باید یکی از آن دو را حذف کنید (اگر قرار است کدها برای case های مختلف، تفاوتی نداشته باشند، کد موجود در case ها را حذف کنید).

--------------------------------------------------

در مورد، تغییر فونت item های GridView ، باید فایل xml مرتبط با تعریف ساختار گرافیکی item ها را یافته و برای TextView های موجود در آن، فونت را مطابق کلید زیر تعیین کنید :

کلید شماره 834

یا اگر فایل xml برای item ها تعیین نشده، باید کدهای java مربوط به ساخت item ها را یافته و کد تغییر فونت را در بین آنها بنویسید.

لطفا سایر سوالات غیر مرتبط با این موضوع را با ساخت موضوع جدید مطرح کنید. 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط داش بهروز ، esmail3309

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#12
(۱۳۹۳/۱۲/۲۹, ۰۱:۵۲ ق.ظ)'admin' نوشته: روش rotateAnimation را دو بار نوشته اید، یک بار اینجا :

کد پی‌اچ‌پی:
public void onItemClick(AdapterView<?> arg0, final View arg1, final int arg2, long arg3) {
    rotateAnimation(arg1); 

و بار دوم، در خود case ها، مثلا :

کد پی‌اچ‌پی:
case 0: {rotateAnimation(arg1); 

بنابراین باید یکی از آن دو را حذف کنید (اگر قرار است کدها برای case های مختلف، تفاوتی نداشته باشند، کد موجود در case ها را حذف کنید).

--------------------------------------------------

در مورد، تغییر فونت item های GridView ، باید فایل xml مرتبط با تعریف ساختار گرافیکی item ها را یافته و برای TextView های موجود در آن، فونت را مطابق کلید زیر تعیین کنید :

کلید شماره 834

یا اگر فایل xml برای item ها تعیین نشده، باید کدهای java مربوط به ساخت item ها را یافته و کد تغییر فونت را در بین آنها بنویسید.

لطفا سایر سوالات غیر مرتبط با این موضوع را با ساخت موضوع جدید مطرح کنید. 

 


ممنون از پاسخ کاملتون
فقط یه مشکل دیگه و آخرین مشکل

الان وقتی یک آیتم رو انتخاب میکنم کل آیتم میچرخه یعنی تکست ویو و عکس آیتم با هم میچرخن.
میخوام با انتخاب آیتم ها فقط عکس آیتم بچرخه و متنش ثابت بمونه.
اینم کد کامل :
کد پی‌اچ‌پی:
        //set grid view item
        
Bitmap q BitmapFactory.decodeResource(this.getResources(), R.drawable.test);
        
Bitmap w BitmapFactory.decodeResource(this.getResources(), R.drawable.test);
        
Bitmap e BitmapFactory.decodeResource(this.getResources(), R.drawable.test);
        
Bitmap r BitmapFactory.decodeResource(this.getResources(), R.drawable.test);
        
Bitmap t BitmapFactory.decodeResource(this.getResources(), R.drawable.test);
        
Bitmap y BitmapFactory.decodeResource(this.getResources(), R.drawable.test);
        
Bitmap u BitmapFactory.decodeResource(this.getResources(), R.drawable.test);
        
Bitmap i BitmapFactory.decodeResource(this.getResources(), R.drawable.test);
        
Bitmap o BitmapFactory.decodeResource(this.getResources(), R.drawable.test);
        
Bitmap p BitmapFactory.decodeResource(this.getResources(), R.drawable.test);
        

        
        
gridArray.add(new Item(q,"   test"));
        
gridArray.add(new Item(w,"     test "));
        
gridArray.add(new Item(e,"   test "));
        
gridArray.add(new Item(r," test "));
        
gridArray.add(new Item(t," test"));
        
gridArray.add(new Item(y,"test "));
        
gridArray.add(new Item(u," test"));
        
gridArray.add(new Item(i,"test "));
        
gridArray.add(new Item(o,"test "));
        
gridArray.add(new Item(p,"test "));

        
        
        
        
        
gridView = (GridViewfindViewById(R.id.gridView1);
        
customGridAdapter = new CustomGridViewAdapter(thisR.layout.row_gridgridArray);
        
gridView.setAdapter(customGridAdapter);
        

      
gridView.setOnItemClickListener(new OnItemClickListener(){  
          @
Override
          
public void onItemClick(AdapterView<?> arg0, final View arg1, final int arg2, long arg3) {
              rotateAnimation(arg1);
              arg1.postDelayed(new Runnable() { public void run() { 
              Intent intent = new Intent();
              switch(arg2){
                    
                    case 0: 
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break; 
                    case 1: 
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break; 
                    case 2:
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break; 
                    case 3: 
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break; 
                    case 4: 
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break; 
                    case 5: 
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;
                    case 6:
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break; 
                    case 7: 
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;
                    case 8: 
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;                
                    case 9: 
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;
                    case 10:
                    intent.setClass(arg1.getContext(), qqqqqq.class   );  startActivity(intent); break;
                }}}, 2000);
                }
      
            });
    }
              private void rotateAnimation(View view) {
                  
                   Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotate);
                   
                   view.startAnimation(animation); 
               } 
           } 




 
پاسخ

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#13
منتظر راهنماییتون هستم
پاسخ

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#14
دوست عزیز شما برای اینکار باید انیمیشن روی ویو Imag،تنظیم کنید،شما کافیه بدونید انیمیشن روی هر View میشه به کاربرد.پس بهتره خودتون تلاش کنید تا نحوه ی استفاده  از انیمیشن یاد بگیرید
پاسخ

انیمیشن چرخش برای ایتم های یک گرید ویو چگونه؟ (اندروید)

#15
من یکم رو اکتیویتی adapter کار کردم ولی نشد!!

میشه یکم بیشتر توضیح بدید؟

من این پروژه رو فقط بره رفع تکلیف لازم دارم بره همین نمیخوام برم دنبال یاد گیریش فعلا.
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان