Я пытаюсь создать один горизонтальный и один вертикальный вид сетки с функцией прокрутки.
Я пытаюсь следить за блогом Горизонтальная прокрутка
** В приведенном выше блоге они загружают изображения из папки /drawable.
Реализация исходного кода для горизонтального представления сетки изображений, которую они используют Горизонтальный список
Используя это, я могу прокручивать по горизонтали мои изображения в виде сетки.
Используя Listview, я также могу загружать изображения вертикально.
Теперь, как указано выше в блоге, к каждому изображению в горизонтальной сетке добавляется кнопка, как показано ниже.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#fff"
>
<com.devsmart.android.ui.HorizontalListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="200dip"
android:background="#ddd"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="300dip">
<ListView android:layout_width="200dip"
android:layout_height="wrap_content"
android:id="@+id/myverticalView"
android:layout_weight="1">
</ListView>
</LinearLayout>
</LinearLayout>
viewItem.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/image"
android:layout_width="150dip"
android:layout_height="150dip"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="20dp"
android:scaleType="centerCrop"
/>
<Button
android:id="@+id/clickbutton"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignBottom="@+id/image"
android:layout_alignLeft="@+id/image"
android:layout_marginBottom="56dp"
android:layout_marginLeft="64dp"
android:gravity="center"
android:padding="16dip" />
<TextView
android:id="@+id/title"
android:layout_width="100dip"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/image"
android:layout_below="@+id/image"
android:layout_marginRight="19dp"
android:layout_marginTop="14dp"
android:gravity="center"
android:textColor="#000" />
</RelativeLayout>
Теперь в MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
HorizontalListView listview = (HorizontalListView) findViewById(R.id.listview);
listview.setAdapter(mAdapter);
}
private static String[] dataObjects = new String[]{ "Text #1",
"Text #2",
"Text #3","Text #4","Text #5"};
private BaseAdapter mAdapter = new BaseAdapter() {
private OnClickListener mOnButtonClicked = new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("hello from " + v);
builder.setPositiveButton("Cool", null);
builder.show();
}
};
@Override
public int getCount() {
return image.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.viewitem, null);
// Initialize the views in the layout
ImageView iv = (ImageView) retval.findViewById(R.id.image);
int pos = position;
// Set the views in the layout
iv.setBackgroundResource(image[pos]);
TextView title = (TextView) retval.findViewById(R.id.title);
title.setText("newImage");
Button button = (Button) retval.findViewById(R.id.clickbutton);
button.setOnClickListener(mOnButtonClicked);
return retval;
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
Теперь в приведенном выше коде при нажатии кнопки они могут получить, какая кнопка нажата,
но я хочу знать, какая кнопка изображения нажата, так как я хочу добавить это изображение (нажатое горизонтальное изображение сетки) в представление вертикального списка изображений.
Кто-нибудь может подсказать, как узнать, какая кнопка изображения нажата?
http://www.dev-smart.com/archives/34
, где они могут прокручивать сетку изображений по горизонтали. Поэтому я чувствую, что если мы внесем некоторые изменения вHorizontalListView.java
, мы сможем сделать VerticalListView, чтобы наша сетка изображений прокручивалась по вертикали. - person Java   schedule 19.02.2015