Android 在两个listview之间绘制箭头
我想在activity中的两个listview之间绘制箭头,概念图如下所示 每个箭头行连接左listview和右listview中的两个相同项 当左listview中的任意项更改其位置时,箭头行必须指向同一项 在右列表视图中 谁能帮我解决这个问题或给我一些方法Android 在两个listview之间绘制箭头,android,listview,layout,Android,Listview,Layout,我想在activity中的两个listview之间绘制箭头,概念图如下所示 每个箭头行连接左listview和右listview中的两个相同项 当左listview中的任意项更改其位置时,箭头行必须指向同一项 在右列表视图中 谁能帮我解决这个问题或给我一些方法 您必须使用具有3个列表视图的主XML,如下所示: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.a
您必须使用具有3个列表视图的主XML,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:weightSum="1" >
<ListView
android:id="@+id/listView1"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="0.43" >
</ListView>
<ListView
android:id="@+id/listView2"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="0.14" >
</ListView>
<ListView
android:id="@+id/listView3"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="0.43" >
</ListView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="35dp" >
</TextView>
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/imgv1"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:background="#0000ff" />
ImageAdapter.java
public class ImageBean {
String imgnm;
}
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
public class ImagesAdapter extends ArrayAdapter<ImageBean>{
Context context;
int resId;
ImageBean[] imgbns;
public ImagesAdapter(Context context, int resId, ImageBean[] imgbns) {
super(context, resId, imgbns);
this.context = context;
this.resId = resId;
this.imgbns = imgbns;
}
@Override
public View getView(final int position, final View convertView, final ViewGroup parent) {
View row = convertView;
ImgHolder hldr = null;
if(row == null)
{
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(resId, parent, false);
hldr = new ImgHolder();
hldr.img1 = (ImageView) row.findViewById(R.id.imgv1);
row.setTag(hldr);
}
else{
hldr = (ImgHolder)row.getTag();
}
hldr.img1.setImageDrawable(context.getResources().getDrawable((R.drawable.right_arrow)));
//hldr.rImg1.setImageBitmap(readImage(imgbns[position].imgnm));
return row;
}
static class ImgHolder
{
ImageView img1;
}
}
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ImageView;
公共类ImagesAdapter扩展了ArrayAdapter{
语境;
国际剩余;
ImageBean[]imgbns;
公共ImagesAdapter(上下文上下文,int resId,ImageBean[]imgbns){
超级(上下文、剩余、imgbns);
this.context=上下文;
这个。剩余=剩余;
this.imgbns=imgbns;
}
@凌驾
公共视图getView(最终整型位置、最终视图转换视图、最终视图组父视图){
视图行=转换视图;
ImgHolder hldr=null;
if(行==null)
{
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
row=充气机。充气(剩余、父项、假);
hldr=新的ImgHolder();
hldr.img1=(ImageView)row.findViewById(R.id.imgv1);
row.setTag(hldr);
}
否则{
hldr=(ImgHolder)row.getTag();
}
setImageDrawable(context.getResources().getDrawable((R.drawable.right_箭头));
//hldr.rImg1.setImageBitmap(readImage(imgbns[position].imgnm));
返回行;
}
静态类ImgHolder
{
ImageView img1;
}
}
YourMainActivity.java:
导入android.app.Activity;
导入android.os.Bundle;
导入android.widget.ArrayAdapter;
导入android.widget.ListView
public class HomePage extends Activity {
ListView lv1, lv2, lv3;
String[] strs1 = {"11", "11111", "111", "omijnu", "op", "11", "11111", "111", "omijnu", "op", "opiuyj", "abc", "bcd", "asddjjd", "omijnu", "op", "opiuyj"};
ImageBean[] imgbns;
//String[] strs3 = {"3333333", "33333", "333333333", "333", "3333", "3333", "333", "3333", "333333333333333333333333", "3333", "333", "333", "333", "3333", "3333333"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
lv1 = (ListView) findViewById(R.id.listView1);
lv2 = (ListView) findViewById(R.id.listView2);
lv3 = (ListView) findViewById(R.id.listView3);
imgbns = new ImageBean[25];
ImagesAdapter imgadptr = new ImagesAdapter(this, R.layout.row_image, imgbns);
lv1.setAdapter(new ArrayAdapter<String>(this, R.layout.row_string, strs1));
lv2.setAdapter(imgadptr);
lv3.setAdapter(new ArrayAdapter<String>(this, R.layout.row_string, strs1));
}
}
公共类主页扩展活动{
ListView 1级、2级、3级;
字符串[]strs1={“11”、“11111”、“111”、“omijnu”、“op”、“11”、“11111”、“111”、“omijnu”、“op”、“opiuyj”、“abc”、“bcd”、“asddjjd”、“omijnu”、“op”、“opiuyj”};
ImageBean[]imgbns;
//字符串[]strs3={“3333333”、“33333”、“333333”、“333”、“3333”、“3333”、“333”、“3333”、“3333”、“3333”、“3333”、“3333”、“3333”、“333”、“333”、“333”、“3333”};
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
lv1=(ListView)findViewById(R.id.listView1);
lv2=(ListView)findViewById(R.id.listView2);
lv3=(ListView)findViewById(R.id.listView3);
imgbns=新ImageBean[25];
ImagesAdapter imgadptr=新的ImagesAdapter(此,R.layout.row_图像,imgbns);
lv1.setAdapter(新的ArrayAdapter(this,R.layout.row_string,strs1));
lv2.设置适配器(imgadptr);
lv3.setAdapter(新的ArrayAdapter(this,R.layout.row_string,strs1));
}
}
非常感谢,它非常有用,但我真正想要的效果就像第二张图片一样,我不知道如何修复中间的listview以达到效果。有什么解决方案吗?@cihm。你得到什么了吗solution@Subhalaxmi,如果您有任何解决方案,请在此处发布