2016-07-03 4 views
2

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

Пожалуйста, помогите мне, чтобы это понять. Моя путаница в том, почему я должен продлить мой класс из относительного макета, как описано выше, я имею в виду, что у меня есть относительный макет в моем XML, и я устанавливаю этот XML в представлении контента, но как я могу захватить конкретный относительный макет по используя эту методологию. И даже если у меня есть расширенный класс из относительного макета, как бы я использовал этот класс в действии, который содержит мои изображения внутри макета.

Моя настройка XML подобна этому, может ли кто-нибудь рассказать мне, какой подход я должен соблюдать.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.cpec.farrukhtanveer.MainActivity"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginLeft="130dp" 
     android:layout_marginRight="130dp" 
     android:background="@drawable/imageBackGround"> 

     <ImageView 
      android:id="@+id/img_one" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:visibility="invisible" 
      android:src="@drawable/imageone"/> 

     <ImageView 
      android:id="@+id/img_two" 
      android:visibility="invisible" 
      android:layout_width="match_parent" 
      android:layout_height="imagetwo"/> 
    </RelativeLayout> 
</RelativeLayout> 

Пожалуйста, помогите людям! Спасибо. Umair

ответ

1

Поскольку никто не придумал решение, я как бы сам себя разобрал и подумал, что это может быть полезно для кого-то, кто застрял в этой проблеме. Основное руководство было получено от here, где автор реализовал увеличение и уменьшение масштаба для одного изображения, нам просто нужно добавить изображения и обработать другую инициализацию, как описано в этом учебнике.

ImageViewWithZoomClass:

private Drawable imageOne, imageTwo; 
imageOne = context.getResources().getDrawable(R.drawable.icon1); 
imageTwo = context.getResources().getDrawable(R.drawable.icon2); 
. 
. 
imageOne.setBounds(0, 0, imageOne.getIntrinsicWidth(), imageOne.getIntrinsicHeight()); 
imageTwo.setBounds(0, 0, imageTwo.getIntrinsicWidth(), imageTwo.getIntrinsicHeight()); 
. 
. 
imageOne.draw(canvas); 
imageTwo.draw(canvas); 

и с тех пор я использую относительное расположение, я просто использовал onClickListener в моем MainActivity как этот

relativeLayout.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      setContentView(new ImageViewWithZoom(getApplicationContext())); 
     } 
    }); 

и XML для относительного раскладка выглядит следующим образом :

<RelativeLayout 
    android:id="@+id/relativeLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginLeft="130dp" 
    android:layout_marginRight="130dp" 
    android:background="@drawable/abc" 
    android:clickable="true" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    > 

    <ImageView 
     android:id="@+id/img_1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/roadandrailways" 
     android:visibility="invisible"/> 

    <ImageView 
     android:id="@+id/img_2" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/capital" 
     android:visibility="invisible"/> 
</RelativeLayout> 

Вы можете добавить несколько изображений в макет. Thats it, надеюсь, что это поможет.

Смежные вопросы