Какая технология внутри Zoom и нажмите на изображение на картах Waldo google? [Дубликат]

, когда объект производного класса присваивается объекту базового класса, дополнительные атрибуты объекта производного класса вырезаются (отбрасываются) из объекта базового класса.

class Base { 
int x;
 };

class Derived : public Base { 
 int z; 
 };

 int main() 
{
Derived d;
Base b = d; // Object Slicing,  z of d is sliced off
}
22
задан Mehul Joisar 30 August 2013 в 14:09
поделиться

4 ответа

Улучшение ответа @sealz, вот мой ответ:

<RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_centerInParent="true"
        android:layout_alignTop="@+id/mail"
        android:layout_alignBottom="@+id/mail"
        >
        <Button
            android:id="@+id/leftMail"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight=".5"
            android:background="@android:color/transparent"
            />
        <Button
            android:id="@+id/rightMail"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight=".5"
            android:background="@android:color/transparent"    
            />
        </LinearLayout>
    <ImageView 
       android:id="@+id/mail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/mail1600x600"
        android:layout_centerInParent="true"
        />
</RelativeLayout>
0
ответ дан Accollativo 21 August 2018 в 07:40
поделиться

У меня были те же проблемы и решена с помощью библиотеки «PhotoView» , где вы можете прослушивать события

onPhotoTap(View view, float x, float y){} 

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

Я создал библиотеку, чтобы помочь другим разработчикам реализовать такую ​​функциональность намного быстрее. Он находится на Github: ClickableAreasImages

Эта библиотека позволяет вам определять кликируемые области изображения, ассоциировать с ним объекты и прослушивать события касания в этой области.

Как использовать библиотеку:

public class MainActivity extends AppCompatActivity implements OnClickableAreaClickedListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Add image
        ImageView image = (ImageView) findViewById(R.id.imageView);
        image.setImageResource(R.drawable.simpsons);

        // Create your image
        ClickableAreasImage clickableAreasImage = new ClickableAreasImage(new PhotoViewAttacher(image), this);

        // Initialize your clickable area list
        List<ClickableArea> clickableAreas = new ArrayList<>();

        // Define your clickable areas
        // parameter values (pixels): (x coordinate, y coordinate, width, height) and assign an object to it
        clickableAreas.add(new ClickableArea(500, 200, 125, 200, new Character("Homer", "Simpson")));
        clickableAreas.add(new ClickableArea(600, 440, 130, 160, new Character("Bart", "Simpson")));
    }

    // Listen for touches on your images:
    @Override
    public void onClickableAreaTouched(Object item) {
        if (item instanceof Character) {
            String text = ((Character) item).getFirstName() + " " + ((Character) item).getLastName();
            Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
        }
    }
...
}
1
ответ дан lukle 21 August 2018 в 07:40
поделиться
  • 1
    Что делать, если мне нужно проверить наличие кликов в областях, не имеющих прямоугольной формы, например, в кружках? Работает ли она с вашей библиотекой? Благодарю. – trinity420 10 April 2016 в 16:38

У меня есть 2 решения для вашего требования. В обоих случаях изображение остается кликабельным, но вы можете получить информацию о области щелчка.

Решение 1:

вы можете замаскировать изображение и получить цвет пикселя под изображением. В конечном итоге вы можете узнать, в какой области щелкнули.

здесь, всякий раз, когда вы нажимаете, вы можете проверить цвет пикселя background image и сопоставить его с предопределенный цвет, чтобы узнать, в какой области щелкнули.

Изображение переднего плана: Foreground image [/g3]

Фоновое изображение: Background image [/g4]

Область щелчка: Representing clickable area [/g5]

Все еще запутано?

Ссылка: Я хотел бы предложить вам пройти этот учебник .

Решение 2:

вы можете сопоставить свое изображение с координатами, и, соответственно, вы можете получить информацию об области, на которую было нажата.

Пример: MappedImage с координатами

, если вы не знаете о координатах, вы можете создать свое mappedimage из здесь

co -определения для Канзаса будут выглядеть примерно так:

        <area shape="poly" coords="243,162,318,162,325,172,325,196,244,196" id="@+id/area14" name = "Kansas"/>

MappedImage with co-ordinates [/g6]

Ссылка: посмотрите Картинка для Android для Android ].

Надеюсь, это будет полезно !!

31
ответ дан Mehul Joisar 21 August 2018 в 07:40
поделиться
  • 1
    ладно, спасибо ....... я буду испытывать это очень скоро – Outflorks Usus 21 May 2013 в 14:52
  • 2
    Спасибо за это! Любая идея, как использовать любой из этих методов в приложении из титанового сплава? – learner123 9 May 2016 в 14:29
  • 3
    Что делать, если нам нужно увеличить изображение и получить пиксель? Возвращает ли он тот же цвет? – Nancy Y 27 June 2017 в 12:55

Вы все еще можете использовать кнопки.

Вы можете поместить их поверх своего изображения в правильные места и сделать их невидимыми.

В XML

<Button android:visibility="invisible"/>

Или

Button mybutton = (Button) v1;
mybutton.setVisibility(View.INVISIBLE);
8
ответ дан sealz 21 August 2018 в 07:40
поделиться
  • 1
  • 2
    Разве это не зависит от того, как вы делаете свои кнопки невидимыми? То есть, если вы устанавливаете атрибут visibility на gone (или invisible), то их нельзя щелкнуть, но что, если вы попытаетесь сделать фон кнопки на 100% прозрачным - я ожидаю, что вы все равно получите событие click (??) – ban-geoengineering 18 October 2016 в 13:04
  • 3
    @sealz Мне нравится это решение, но видимость не работает. Я сделал фон прозрачным, и это сработало. – jcaruso 28 March 2017 в 19:57
Другие вопросы по тегам:

Похожие вопросы: