10

我想显示图像的某些部分。就像一本漫画书。我有一个这样的图像。

这是实际图像。

当我单击图像时,某些部分会像这样显示。

单击这部分图像时的第二张图像。

我想显示这种类型。在这个过程中,我创建了一些包含主图像图像部分的 zip 文件。我完成了明智地显示每个图像序列。但我的问题是如何让实际图像的任何部分单击并在第二个屏幕中显示它?

我无法获取图像部件 ID。那么如何获取图像ID的这一部分。

所以请帮助我。我被困住了。

4

2 回答 2

1

如果您有包含部分主图像的存档,那么这意味着您手动制作它们,对吗?因此,您的漫画书阅读器将仅适用于手动创建的内容。

确实如此,因此制作某种配置文件(例如基于 xml 或属性文件)将包含每个部分的大小和位置是没有问题的。

之后,您可以处理MotionEvent并通过配置中的坐标检测零件的 ID。

您还可以通过即时剪切图像来改进您的应用程序。这并不难。

例子:

您在此处的图片 ( page1.png):

--------------------------------
|                 |            |
|                 |            |
|                 |     2      |
|        1        |            |
|                 |            |
|                 |------------|
|                 |            |
|-----------------|            |
|                 |     4      |
|                 |            |
|                 |            |
|                 |------------|
|        3        |            |
|                 |            |
|                 |     5      |
|                 |            |
|                 |            |
--------------------------------

您的简单配置(page1.cfg):

# Parts description
# id=x,y;w,h
1=0,0;18,9
2=19,0;13,7
3=0,10;18,11
4=19,8;13,7
5=19,15;13,6

你的邮编:

page1.png
page1-1.png
page1-2.png
page1-3.png
page1-4.png
page1-5.png
page1.cfg
...
于 2012-12-18T11:32:38.990 回答
0

你可以为这个问题做一个技巧。

在布局内设置按钮(背景为透明)。

将按钮的 OnclickListener 设置为在课堂活动中显示您想要的弹出窗口。

您还可以根据您的要求按可见/不可见功能管理按钮单击事件。

已编辑

您的 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"
    android:background="@drawable/YOUR_IMAGE" >

    <Button
        android:id="@+id/btn_invisible"
        android:layout_width="85dp" 
        android:layout_height="30dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="18dp"
        android:background="@android:color/transparent" />

</RelativeLayout>

并在您的 Activity 类的 OnCreate() 方法中。

   @Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();

    setContentView(R.layout.help_1);
    btn_invisible = (Button) findViewById(R.id.btn_invisible);
    btn_invisible.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    if (v == btn_invisible) {
        //Whatever Code you want to Use for Show Popups

    }

我不确定,但你可以尝试一次。

于 2012-12-17T07:18:29.797 回答