<?xml version="1.0" encoding="utf-8"?>
<!-- 
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/pf_bg_white">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="@string/prettyfish_coordx"
        android:id="@+id/tv_coordx"
        android:paddingLeft="@dimen/pf_font_padding"
        android:gravity="center_vertical"
        android:textColor="@color/pf_font_blue"
        android:textSize="@dimen/pf_font_size" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="@string/prettyfish_coordy"
        android:id="@+id/tv_coordy"
        android:gravity="center_vertical"
        android:textColor="@color/pf_font_blue"
        android:textSize="@dimen/pf_font_size" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="@string/prettyfish_coordw"
        android:id="@+id/tv_coordw"
        android:paddingRight="@dimen/pf_font_padding"
        android:gravity="center_vertical"
        android:textColor="@color/pf_font_blue"
        android:textSize="@dimen/pf_font_size" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="@string/prettyfish_coordh"
        android:id="@+id/tv_coordh"
        android:paddingRight="@dimen/pf_font_padding"
        android:gravity="center_vertical"
        android:textColor="@color/pf_font_blue"
        android:textSize="@dimen/pf_font_size" />
</LinearLayout><!-- From: file:/Users/ricky/Desktop/ricky/allgitcode/prettyfish/prettyfish_base/src/main/res/layout/prettyfish_coordview.xml -->