Как отобразить часть изображения в андроиде

Я хочу отобразить часть изображения. Подобно комической книге. У меня есть одно изображение.

this is actual image.

когда я нажимаю на изображение, некоторые части отображаются следующим образом.

Second image when click this part of image.

Я хочу отобразить этот тип. в этом процессе я создаю zip файл, содержащий часть изображений основного изображения. я сделал, чтобы отобразить каждую последовательность изображений wise.but моя проблема заключается в том, как получить фактическое изображение любой части щелчка и отобразить это как в качестве второго экрана?

Я не могу получить идентификатор части изображения. поэтому, как получить эту часть идентификатора изображения.

пожалуйста, помогите мне. Я застрял.

Ответ 1

Если у вас есть архив с частями основного изображения, значит, вы сделали их вручную, не так ли? Таким образом, ваш просмотрщик комиксов будет применяться только для созданного вручную контента.

Это правда, поэтому нет никаких проблем с созданием какого-либо конфигурационного файла (например, xml-based или Properties файл), который будет содержать размер и положение для каждой части.

После этого вы можете обрабатывать MotionEvent и определять идентификатор части по координатам из конфигурации.

Вы также можете улучшить свое приложение, разрезав изображения на лету. Это не сложно.

Пример:

Ваше изображение здесь (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
...

Ответ 2

вы можете сделать один трюк для этой проблемы.

Установить кнопки (с фоном как прозрачные) внутри макетов.

Установите OnclickListener из кнопок, чтобы показать свои PopUps, которые вы хотите внутри вашей деятельности класса.

вы также можете управлять кнопкой Click Event по видимой/невидимой функции для согласно вашему требованию.

Отредактировано

ваш 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>

и внутри вашего метода 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

    }

Я не уверен, но вы можете попробовать его один раз.