Draw Arrow Between Two Listview
i want to draw arrow between two listview in activity ,the concept image As shown below. every arrow line connect two same item in left listview and right listview. when the any it
Solution 1:
You have to use a main XML having 3 ListViews as following:
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="horizontal"android:weightSum="1" ><ListViewandroid:id="@+id/listView1"android:layout_width="0dp"android:layout_height="fill_parent"android:layout_weight="0.43" ></ListView><ListViewandroid:id="@+id/listView2"android:layout_width="0dp"android:layout_height="fill_parent"android:layout_weight="0.14" ></ListView><ListViewandroid:id="@+id/listView3"android:layout_width="0dp"android:layout_height="fill_parent"android:layout_weight="0.43" ></ListView></LinearLayout>
Then you need a Row-XML just say "row_string" for LEFT and RIGHT listviews's row fillup, as following:
<?xml version="1.0" encoding="utf-8"?><TextViewxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="35dp" ></TextView>
Then you need a Image_XML just say "row_image" for middle listview as following:
<?xml version="1.0" encoding="utf-8"?><ImageViewxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/imgv1"android:layout_width="wrap_content"android:layout_height="35dp"android:background="#0000ff" />
Then you will need ImageBean, ImageAdapter class and Main Activity:
ImageBean.java
publicclassImageBean{
String imgnm;
}
ImageAdapter.java
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
publicclassImagesAdapterextendsArrayAdapter<ImageBean>{
Context context;
int resId;
ImageBean[] imgbns;
publicImagesAdapter(Context context, int resId, ImageBean[] imgbns) {
super(context, resId, imgbns);
this.context = context;
this.resId = resId;
this.imgbns = imgbns;
}
@Overridepublic View getView(finalint position, final View convertView, final ViewGroup parent) {
Viewrow= convertView;
ImgHolderhldr=null;
if(row == null)
{
LayoutInflaterinflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(resId, parent, false);
hldr = newImgHolder();
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;
}
staticclassImgHolder
{
ImageView img1;
}
}
YourMainActivity.java:
import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView;
public classHomePage 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));
}
}
Post a Comment for "Draw Arrow Between Two Listview"