rezano
شنبه 11 مهر 1394, 01:03 صبح
با سلام
من یه Grid View دارم که در حالت Portrait دو تا ستون رو بهم نشون میده. محتوای توی Grid View توسط یه اکتیویتی دیگه پر میشه که اونجا برای هر آیتم مقدار ثابت 180 رو تعیین کردم یعنی عرض هر ستون میشه 180 .
می خوام توی حالت Landscape که عرض گوشی بزرگتر میشه و یا مثلا روی تبلت اگه اجرا بشه با توجه به فضای خالی که ایجاد میشه تعداد ستون ها بیشتر بشه.
توی تنظیمات Grid View هم مقدار تعداد ستون ها رو روی auto_fit گزاشتم.
MainActivity.java
public class MainActivity extends AppCompatActivity {
ArrayList<Person> PersonList = new ArrayList<Person>();
GridView myGridView;
GridViewAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myGridView = (GridView) findViewById(R.id.gridView);
PersonList.add(CreatePerson("Ali", "ali_pic"));
PersonList.add(CreatePerson("Reza","reza_pic"));
PersonList.add(CreatePerson("hasan","hasan_pic"));
PersonList.add(CreatePerson("saeed","saeed_pic"));
PersonList.add(CreatePerson("Ali", "ali_pic"));
PersonList.add(CreatePerson("Reza","reza_pic"));
PersonList.add(CreatePerson("hasan","hasan_pic"));
PersonList.add(CreatePerson("saeed","saeed_pic"));
adapter = new GridViewAdapter(this, PersonList);
myGridView.setAdapter(adapter);
}
public Person CreatePerson (String _name,String _pic)
{
Person tempPerson = new Person();
tempPerson.name=_name;
tempPerson.pic=_pic;
return tempPerson;
}
}
GridViewAdapter.java
public class GridViewAdapter extends BaseAdapter {
Context mContext;
LayoutInflater inflater;
private List<Person> PersonList = null;
private ArrayList<Person> arraylist;
public GridViewAdapter(Context context, List<Person> oillist) {
mContext = context;
this.PersonList = oillist;
inflater = LayoutInflater.from(mContext);
this.arraylist = new ArrayList<Person>();
this.arraylist.addAll(oillist);
}
public class ViewHolder {
TextView name;
ImageView pic;
}
@Override
public int getCount() {
return PersonList.size();
}
@Override
public Person getItem(int position) {
return PersonList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(final int position, View view, ViewGroup parent) {
final ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.gridview_item, null);
holder.name = (TextView) view.findViewById(R.id.txt_Name);
holder.pic = (ImageView) view.findViewById(R.id.img_pic);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
holder.name.setText(PersonList.get(position).name) ;
holder.pic.setImageResource(R.mipmap.ic_launcher);
return view;
}
}
Person.java
public class Person
{
public String name;
public String pic;
}
activity_main.xml
<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">
<GridView
android:id="@+id/gridView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:contextClickable="true"
android:stretchMode="columnWidth"
android:textAlignment="center"
android:smoothScrollbar="true"
android:scrollingCache="true"
android:numColumns="auto_fit">
</GridView>
</RelativeLayout>
gridview_item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="180dp"
android:layout_height="205dp"
android:orientation="vertical"
android:padding="1dp"
android:gravity="left|top"
android:baselineAligned="false">
<ImageView
android:id="@+id/img_pic"
android:layout_width="180dp"
android:layout_height="180dp"
android:src="@mipmap/ic_launcher"
android:layout_gravity="center">
</ImageView>
<TextView
android:id="@+id/txt_Name"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:text="Name"
android:textStyle="bold"
android:gravity="center"
android:layout_gravity="center">
</TextView>
</LinearLayout>
http://8pic.ir/images/glil9atber5qbuw772zb_thumb.png (http://8pic.ir/viewer.php?file=glil9atber5qbuw772zb.png)http://8pic.ir/images/v79eyay7s1hcab0n9z76_thumb.png (http://8pic.ir/viewer.php?file=v79eyay7s1hcab0n9z76.png)
من یه Grid View دارم که در حالت Portrait دو تا ستون رو بهم نشون میده. محتوای توی Grid View توسط یه اکتیویتی دیگه پر میشه که اونجا برای هر آیتم مقدار ثابت 180 رو تعیین کردم یعنی عرض هر ستون میشه 180 .
می خوام توی حالت Landscape که عرض گوشی بزرگتر میشه و یا مثلا روی تبلت اگه اجرا بشه با توجه به فضای خالی که ایجاد میشه تعداد ستون ها بیشتر بشه.
توی تنظیمات Grid View هم مقدار تعداد ستون ها رو روی auto_fit گزاشتم.
MainActivity.java
public class MainActivity extends AppCompatActivity {
ArrayList<Person> PersonList = new ArrayList<Person>();
GridView myGridView;
GridViewAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myGridView = (GridView) findViewById(R.id.gridView);
PersonList.add(CreatePerson("Ali", "ali_pic"));
PersonList.add(CreatePerson("Reza","reza_pic"));
PersonList.add(CreatePerson("hasan","hasan_pic"));
PersonList.add(CreatePerson("saeed","saeed_pic"));
PersonList.add(CreatePerson("Ali", "ali_pic"));
PersonList.add(CreatePerson("Reza","reza_pic"));
PersonList.add(CreatePerson("hasan","hasan_pic"));
PersonList.add(CreatePerson("saeed","saeed_pic"));
adapter = new GridViewAdapter(this, PersonList);
myGridView.setAdapter(adapter);
}
public Person CreatePerson (String _name,String _pic)
{
Person tempPerson = new Person();
tempPerson.name=_name;
tempPerson.pic=_pic;
return tempPerson;
}
}
GridViewAdapter.java
public class GridViewAdapter extends BaseAdapter {
Context mContext;
LayoutInflater inflater;
private List<Person> PersonList = null;
private ArrayList<Person> arraylist;
public GridViewAdapter(Context context, List<Person> oillist) {
mContext = context;
this.PersonList = oillist;
inflater = LayoutInflater.from(mContext);
this.arraylist = new ArrayList<Person>();
this.arraylist.addAll(oillist);
}
public class ViewHolder {
TextView name;
ImageView pic;
}
@Override
public int getCount() {
return PersonList.size();
}
@Override
public Person getItem(int position) {
return PersonList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(final int position, View view, ViewGroup parent) {
final ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.gridview_item, null);
holder.name = (TextView) view.findViewById(R.id.txt_Name);
holder.pic = (ImageView) view.findViewById(R.id.img_pic);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
holder.name.setText(PersonList.get(position).name) ;
holder.pic.setImageResource(R.mipmap.ic_launcher);
return view;
}
}
Person.java
public class Person
{
public String name;
public String pic;
}
activity_main.xml
<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">
<GridView
android:id="@+id/gridView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:contextClickable="true"
android:stretchMode="columnWidth"
android:textAlignment="center"
android:smoothScrollbar="true"
android:scrollingCache="true"
android:numColumns="auto_fit">
</GridView>
</RelativeLayout>
gridview_item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="180dp"
android:layout_height="205dp"
android:orientation="vertical"
android:padding="1dp"
android:gravity="left|top"
android:baselineAligned="false">
<ImageView
android:id="@+id/img_pic"
android:layout_width="180dp"
android:layout_height="180dp"
android:src="@mipmap/ic_launcher"
android:layout_gravity="center">
</ImageView>
<TextView
android:id="@+id/txt_Name"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:text="Name"
android:textStyle="bold"
android:gravity="center"
android:layout_gravity="center">
</TextView>
</LinearLayout>
http://8pic.ir/images/glil9atber5qbuw772zb_thumb.png (http://8pic.ir/viewer.php?file=glil9atber5qbuw772zb.png)http://8pic.ir/images/v79eyay7s1hcab0n9z76_thumb.png (http://8pic.ir/viewer.php?file=v79eyay7s1hcab0n9z76.png)