PDA

View Full Version : کــــــــمک فوری:قرار دادن تصویر بین گرید ویو



esmail3309
دوشنبه 03 شهریور 1393, 11:50 صبح
سلام دوستان
من یک گریدویو دارم که تعداد زیادی دکمه داره

خب میخواستم بدونم چطوری میتونم در یک گرید ویو مثلا بین دکمه ی 6 و 7 یک تصویر با عرض fill parent قرار بدم؟مثل تصویر پایین؟
122650

اینم کد اکتیویتی مربوط به گرید ویو:

package com.example.clashup;

import java.util.ArrayList;


import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.GridView;
import android.widget.Toast;



public class MainActivity_gridview extends Activity {
GridView gridView;
ArrayList<Item> gridArray = new ArrayList<Item>();
CustomGridViewAdapter customGridAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENT ATION_PORTRAIT);
setContentView(R.layout.activity_main_gridview);






//set grid view item
Bitmap a = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_3_1);
Bitmap b = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_1_1);
Bitmap c = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_2_1);
Bitmap d = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_4_1);
Bitmap e = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_5_1);
Bitmap f = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_6_1);
Bitmap g = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_7_1);
Bitmap h = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_8_1);
Bitmap i = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_9_1);
Bitmap j = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_10_1);
Bitmap k = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_11_1);
Bitmap l = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_12_1);
Bitmap m = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_13_1);
Bitmap n = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_14_1);
Bitmap o = BitmapFactory.decodeResource(this.getResources(), R.drawable.ghavitarin_ha);





gridArray.add(new Item(a,""));
gridArray.add(new Item(b,""));
gridArray.add(new Item(c,""));
gridArray.add(new Item(d,""));
gridArray.add(new Item(e,""));
gridArray.add(new Item(f,""));
gridArray.add(new Item(g,""));
gridArray.add(new Item(h,""));
gridArray.add(new Item(i,""));
gridArray.add(new Item(j,""));
gridArray.add(new Item(k,""));
gridArray.add(new Item(l,""));
gridArray.add(new Item(m,""));
gridArray.add(new Item(n,""));
gridArray.add(new Item(o,""));




//-------------------------------------------GRIDVIEW_1---------------------------------------------------------

gridView = (GridView) findViewById(R.id.gridView1);
customGridAdapter = new CustomGridViewAdapter(this, R.layout.row_grid, gridArray);
gridView.setAdapter(customGridAdapter);

gridView.setOnItemClickListener(new OnItemClickListener(){ @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent intent = new Intent();
switch(arg2){
case 0: intent.setClass(arg1.getContext(), one.class ); startActivity(intent); break;
case 1: intent.setClass(arg1.getContext(), two.class ); startActivity(intent); break;
case 2: intent.setClass(arg1.getContext(), three.class ); startActivity(intent); break;
case 3: intent.setClass(arg1.getContext(), four.class ); startActivity(intent); break;
case 4: intent.setClass(arg1.getContext(), five.class ); startActivity(intent); break;
case 5: intent.setClass(arg1.getContext(), six.class ); startActivity(intent); break;
case 6: intent.setClass(arg1.getContext(), seven.class ); startActivity(intent); break;
case 7: intent.setClass(arg1.getContext(), eight.class ); startActivity(intent); break;
case 8: intent.setClass(arg1.getContext(), nine.class ); startActivity(intent); break;
case 9: intent.setClass(arg1.getContext(), ten.class ); startActivity(intent); break;

case 10:AlertDialog alert=new AlertDialog.Builder(MainActivity_gridview.this).cr eate();
alert.setTitle("coming soon..");
alert.setMessage("به زودی..\nدر نسخه های بعدی برنامه منتظر این قسمت باشید");
alert.show();

case 11:AlertDialog alert_1=new AlertDialog.Builder(MainActivity_gridview.this).cr eate();
alert_1.setTitle("coming soon..");
alert_1.setMessage("به زودی..\nدر نسخه های بعدی برنامه منتظر این قسمت باشید");
alert_1.show();

case 12:AlertDialog alert_2=new AlertDialog.Builder(MainActivity_gridview.this).cr eate();
alert_2.setTitle("coming soon..");
alert_2.setMessage("به زودی..\nدر نسخه های بعدی برنامه منتظر این قسمت باشید");
alert_2.show();

case 13:AlertDialog alert_3=new AlertDialog.Builder(MainActivity_gridview.this).cr eate();
alert_3.setTitle("coming soon..");
alert_3.setMessage("به زودی..\nدر نسخه های بعدی برنامه منتظر این قسمت باشید");
alert_3.show();

case 14: AlertDialog alert_4=new AlertDialog.Builder(MainActivity_gridview.this).cr eate();
alert_4.setTitle("coming soon..");
alert_4.setMessage("به زودی..\nدر نسخه های بعدی برنامه منتظر این قسمت باشید");
alert_4.show();
}

}});


}



@Override
public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {



case R.id.java:
javaActivity();
return true;



default:
return super.onOptionsItemSelected(item);
}

}

public void homeActivity() {










}

public void javaActivity() {
startActivity(new Intent(this, about_us.class));
}




}




میشه یک کمکی برسونید؟
ممنون

(فک میکنم از طریق اون قسمتی که برای کیس های مختلف onitemlistener تنظیممیکنیم بشه؟آره؟چطوری؟)

esmail3309
دوشنبه 03 شهریور 1393, 15:48 عصر
دوستان منتظرم...

haniiii
دوشنبه 03 شهریور 1393, 17:31 عصر
نزدیک ترین چیزی (https://github.com/TonicArtos/StickyGridHeaders) که دیدم ...

esmail3309
دوشنبه 03 شهریور 1393, 17:38 عصر
ممنون
ولی من فقط دنبال روشیم که بتونم بین چند تا از دکمه های همین گرید ویو یک تصویر ساده قرار بدم

کسی نیست یه کمکی برسونه؟

esmail3309
دوشنبه 03 شهریور 1393, 22:26 عصر
دوستان لطفا اگه راه حلی نیست بگید که یک فکر دیگه بکنم:متفکر:

slr560
دوشنبه 03 شهریور 1393, 22:40 عصر
خب این سادس که
شما اول از همه کل صفحه رو بزار توی اسکرول
بعدش گرید ویو اول رو بچسبون بالای صفحه.
پایین گرید ویو یه imageView بنویس و خاصیت below اون رو به آیدی گرید ویو نسبت بده
تموم.

esmail3309
سه شنبه 04 شهریور 1393, 08:06 صبح
آره این کارو کردم اولش ولی به یک مشکلی برخوردم

این کد لیوتم:(منظورتون همین جوریه دیگه؟)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background_5"
tools:context=".MainActivity_gridview" >


<ScrollView
android:id="@+id/scrollView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >




<ImageView
android:id="@+id/imageView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/gridView3"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:src="@drawable/title_4" />
<GridView
android:id="@+id/gridView4"
android:layout_width="wrap_content"
android:layout_height="400dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/imageView2"
android:layout_margin="4dp"
android:columnWidth="150dp"
android:gravity="center"
android:numColumns="auto_fit"
android:stretchMode="columnWidth" >
</GridView>


<ImageView
android:id="@+id/imageView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/gridView2"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:src="@drawable/title_5" />
<GridView
android:id="@+id/gridView5"
android:layout_width="wrap_content"
android:layout_height="400dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/imageView2"
android:layout_margin="4dp"
android:columnWidth="150dp"
android:gravity="center"
android:numColumns="auto_fit"
android:stretchMode="columnWidth" >
</GridView>



<ImageView
android:id="@+id/imageView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/gridView2"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:src="@drawable/title_6" />
<GridView
android:id="@+id/gridView6"
android:layout_width="wrap_content"
android:layout_height="400dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/imageView2"
android:layout_margin="4dp"
android:columnWidth="150dp"
android:gravity="center"
android:numColumns="auto_fit"
android:stretchMode="columnWidth" >
</GridView>



<ImageView
android:id="@+id/imageView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/gridView2"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:src="@drawable/title_7" />
<GridView
android:id="@+id/gridView7"
android:layout_width="wrap_content"
android:layout_height="400dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/imageView2"
android:layout_margin="4dp"
android:columnWidth="150dp"
android:gravity="center"
android:numColumns="auto_fit"
android:stretchMode="columnWidth" >
</GridView>



</LinearLayout>
</ScrollView>

</RelativeLayout>




دقیقا همون جوری که میخواستم درست شد (عکسشم همون عکس بالاست)

ولی یه مشکلی داره

این کد اکتیویتی:


package com.example.clashup;

import java.util.ArrayList;


import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.GridView;
import android.widget.Toast;



public class MainActivity_gridview extends Activity {
GridView gridView;
ArrayList<Item> gridArray = new ArrayList<Item>();
CustomGridViewAdapter customGridAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENT ATION_PORTRAIT);
setContentView(R.layout.activity_main_gridview);






//set grid view item
Bitmap a = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_3_1);
Bitmap b = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_1_1);
Bitmap c = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_2_1);
Bitmap d = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_4_1);
Bitmap e = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_5_1);
Bitmap f = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_6_1);
Bitmap g = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_7_1);
Bitmap h = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_8_1);
Bitmap i = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_9_1);
Bitmap j = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_10_1);
Bitmap k = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_11_1);
Bitmap l = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_12_1);
Bitmap m = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_13_1);
Bitmap n = BitmapFactory.decodeResource(this.getResources(), R.drawable.zero_1_14_1);
Bitmap o = BitmapFactory.decodeResource(this.getResources(), R.drawable.ghavitarin_ha);




gridArray.add(new Item(a,""));
gridArray.add(new Item(b,""));
gridArray.add(new Item(c,""));
gridArray.add(new Item(d,""));
gridArray.add(new Item(e,""));
gridArray.add(new Item(f,""));
gridArray.add(new Item(g,""));
gridArray.add(new Item(h,""));
gridArray.add(new Item(i,""));
gridArray.add(new Item(j,""));
gridArray.add(new Item(k,""));
gridArray.add(new Item(l,""));
gridArray.add(new Item(m,""));
gridArray.add(new Item(n,""));
gridArray.add(new Item(o,""));




gridView = (GridView) findViewById(R.id.gridView2);
customGridAdapter = new CustomGridViewAdapter(this, R.layout.row_grid, gridArray);
gridView.setAdapter(customGridAdapter);

gridView.setOnItemClickListener(new OnItemClickListener(){ @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent intent = new Intent();
switch(arg2){
case 0: intent.setClass(arg1.getContext(), one.class ); startActivity(intent); break;
case 1: intent.setClass(arg1.getContext(), two.class ); startActivity(intent); break;
case 2: intent.setClass(arg1.getContext(), three.class ); startActivity(intent); break;
case 3: intent.setClass(arg1.getContext(), four.class ); startActivity(intent); break;
case 4: intent.setClass(arg1.getContext(), five.class ); startActivity(intent); break;
case 5: intent.setClass(arg1.getContext(), six.class ); startActivity(intent); break;
case 6: intent.setClass(arg1.getContext(), seven.class ); startActivity(intent); break;
case 7: intent.setClass(arg1.getContext(), eight.class ); startActivity(intent); break;
case 8: intent.setClass(arg1.getContext(), nine.class ); startActivity(intent); break;
case 9: intent.setClass(arg1.getContext(), ten.class ); startActivity(intent); break;

case 10:AlertDialog alert=new AlertDialog.Builder(MainActivity_gridview.this).cr eate();
alert.setTitle("coming soon..");
alert.setMessage("به زودی..\nدر نسخه های بعدی برنامه منتظر این قسمت باشید");
alert.show();

case 11:AlertDialog alert_1=new AlertDialog.Builder(MainActivity_gridview.this).cr eate();
alert_1.setTitle("coming soon..");
alert_1.setMessage("به زودی..\nدر نسخه های بعدی برنامه منتظر این قسمت باشید");
alert_1.show();

case 12:AlertDialog alert_2=new AlertDialog.Builder(MainActivity_gridview.this).cr eate();
alert_2.setTitle("coming soon..");
alert_2.setMessage("به زودی..\nدر نسخه های بعدی برنامه منتظر این قسمت باشید");
alert_2.show();

case 13:AlertDialog alert_3=new AlertDialog.Builder(MainActivity_gridview.this).cr eate();
alert_3.setTitle("coming soon..");
alert_3.setMessage("به زودی..\nدر نسخه های بعدی برنامه منتظر این قسمت باشید");
alert_3.show();

case 14: AlertDialog alert_4=new AlertDialog.Builder(MainActivity_gridview.this).cr eate();
alert_4.setTitle("coming soon..");
alert_4.setMessage("به زودی..\nدر نسخه های بعدی برنامه منتظر این قسمت باشید");
alert_4.show();
}

}});

//------------------------------------------------gridview_2---------------------------------------------------------

gridView = (GridView) findViewById(R.id.gridView3);
customGridAdapter = new CustomGridViewAdapter(this, R.layout.row_grid, gridArray);
gridView.setAdapter(customGridAdapter);

gridView.setOnItemClickListener(new OnItemClickListener(){ @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent intent = new Intent();
switch(arg2){
case 0: intent.setClass(arg1.getContext(), one.class ); startActivity(intent); break;
case 1: intent.setClass(arg1.getContext(), two.class ); startActivity(intent); break;
case 2: intent.setClass(arg1.getContext(), three.class ); startActivity(intent); break;
case 3: intent.setClass(arg1.getContext(), four.class ); startActivity(intent); break;
case 4: intent.setClass(arg1.getContext(), five.class ); startActivity(intent); break;
case 5: intent.setClass(arg1.getContext(), six.class ); startActivity(intent); break;
case 6: intent.setClass(arg1.getContext(), seven.class ); startActivity(intent); break;
case 7: intent.setClass(arg1.getContext(), eight.class ); startActivity(intent); break;
case 8: intent.setClass(arg1.getContext(), nine.class ); startActivity(intent); break;
case 9: intent.setClass(arg1.getContext(), ten.class ); startActivity(intent); break;


}

}});






}



@Override
public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {



case R.id.java:
javaActivity();
return true;



default:
return super.onOptionsItemSelected(item);
}

}

public void homeActivity() {










}

public void javaActivity() {
startActivity(new Intent(this, about_us.class));
}




}





حالا من چطوری میتونم برای هر گرید ویوم آیکان های جداگانه استفاده کنم؟

الان مثلا توی اکتیویتی بالا دوتا گرید ویو هست که اولی 15 و دومی 10 تا دکمه(Case) داره اما وقتی برناممو اجرا میکنم می بینم که هر دو گرید ویو 15 تا دکمه دارن!!

خب راه حلش چیه؟
چطوری میتونم عکس دکمه ها و تعدادشونو توی این گرید ویو ها از هم مجزا کنم

esmail3309
سه شنبه 04 شهریور 1393, 16:03 عصر
کسی نبود یه کمکی برسونه؟
دوستان اگه راه حلی وجود نداره بگید که من یه فکر دیگه بکنم:متفکر:

omid.n1990
سه شنبه 04 شهریور 1393, 17:44 عصر
دوست عزیر چه دوتا case چه هزارتا، تعداد caseها ربطی به چیزی که به شما نشون میده نداره. اون مدیریت کلیک رو انجام میده.
شما آداپترهات جفتشون دارن 15تا تصویر رو وارد گریدویو میکنن.
این سه خط زیر یک آداپتر با پانزده آیتم رو وارد گرید ویو یک میکنه


gridView = (GridView) findViewById(R.id.gridView1);
customGridAdapter = new CustomGridViewAdapter(this, R.layout.row_grid, gridArray);
gridView.setAdapter(customGridAdapter);



همونکارو سه خط زیر واسه گرید ویو دو داره انجام میده

gridView = (GridView) findViewById(R.id.gridView2); customGridAdapter = new CustomGridViewAdapter(this, R.layout.row_grid, gridArray);
gridView.setAdapter(customGridAdapter);


شما باید یک آداپتر درست کنی که مثلا پانزده آیتم وارد گرید ویو یک بکنه
یک آداپتر دیگه با ده آیتم واسه گرید ویو2 همین

esmail3309
سه شنبه 04 شهریور 1393, 18:45 عصر
آره راس میگیدا:متفکر:
خیلی ممنون حل شد :چشمک: