main.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="vertical" > <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" /> <FrameLayout
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|bottom">
</Button>
</FrameLayout></LinearLayout> activity如下:
public class Test_CircleActivity extends Activity {
private Button btn;
private FrameLayout layout;
private ListView lv;
private String items[] = {"a","b","c","d","e","f","g","h","i"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button)findViewById(R.id.button1);
layout = (FrameLayout)findViewById(R.id.layout);
MyView myView = new MyView(this);
MyView1 myView1 = new MyView1(this);
layout.addView(myView);
layout.addView(myView1);
myView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "click right", 1).show();
}
});
myView1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "right clidk", 1).show();
}
}); lv = (ListView)findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, items);
lv.setAdapter(adapter);
}
public class MyView extends View{ public MyView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.ic_launcher);
canvas.drawBitmap(bitmap, 200, 200, paint);
}
}
public class MyView1 extends View{ public MyView1(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.ic_launcher);
canvas.drawBitmap(bitmap, 100, 100, paint);
}
}
} 这个小测试程序运行后,屏幕上有两个小图标,都是继承自View,我想点击不同图标出现不同的Toast提示,可是不管点击哪儿,只能出现一种效果。。求高手帮忙解决
<?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="vertical" > <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" /> <FrameLayout
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|bottom">
</Button>
</FrameLayout></LinearLayout> activity如下:
public class Test_CircleActivity extends Activity {
private Button btn;
private FrameLayout layout;
private ListView lv;
private String items[] = {"a","b","c","d","e","f","g","h","i"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button)findViewById(R.id.button1);
layout = (FrameLayout)findViewById(R.id.layout);
MyView myView = new MyView(this);
MyView1 myView1 = new MyView1(this);
layout.addView(myView);
layout.addView(myView1);
myView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "click right", 1).show();
}
});
myView1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "right clidk", 1).show();
}
}); lv = (ListView)findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, items);
lv.setAdapter(adapter);
}
public class MyView extends View{ public MyView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.ic_launcher);
canvas.drawBitmap(bitmap, 200, 200, paint);
}
}
public class MyView1 extends View{ public MyView1(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.ic_launcher);
canvas.drawBitmap(bitmap, 100, 100, paint);
}
}
} 这个小测试程序运行后,屏幕上有两个小图标,都是继承自View,我想点击不同图标出现不同的Toast提示,可是不管点击哪儿,只能出现一种效果。。求高手帮忙解决
解决方案 »
- 请教!!进入看图
- 如何获取LightsService,
- 按下一个控件触发另一个控件的背景改变
- AMF解析问题
- 语言识别,会的请进
- 我想把单位的网站再加一个手机版的,怎么实现呢?
- 求助如何将数据通过手机APP传输到其他智能设备屏幕上?
- 高难度问题,activity在设置了priority后通过queryIntentActivities无法查询到其他同类intent
- GestureImageView結合Viewpager問題
- 求助!求助一个HLS的视频源码
- 急~~请教!如何向SDK中加入自定义的类?
- the user data image is used by another emulator. aborting
你可以这么处理
把触摸(点击)放在activity中,然后activity中判断坐标在哪个view中,然后做触发你想要的效果。
其中在view中定义一个Rect,在onDraw的时候绘制这个Rect的大小,宽和高就是图片的宽和高。判断是就看坐标是否在Rect.contains内,如果在范围内就是点中了这个view.