1. 程式人生 > >Android五種佈局方式——LinearLayout、RelativeLayout、TableLayout....(四)

Android五種佈局方式——LinearLayout、RelativeLayout、TableLayout....(四)

Android五種佈局方式——LinearLayout、RelativeLayout 、TableLayout....

Android使用XML宣告介面佈局

將程式的表現層和控制層分離
修改使用者介面時,無需更改程式的原始碼

視覺化工具設計使用者介面

Android五種佈局方式
LinearLayout線性佈局
AbsoluteLayout座標佈局
RelativeLayout相對佈局    
FrameLayout幀佈局
TableLayout表格佈局

GridLayout

1.LinearLayout線性佈局


2.FrameLayout幀佈局

最簡單的佈局形式
元件都放在螢幕的左上角,元件是按次序加入次序層疊在一起,上一層的控制元件會覆蓋下一層的控制元件

3.TableLayout表格佈局

Tablelayout以行和列的形式對控制元件進行管理,每一行為一個TableRow物件,或一個View控制元件。
當為TableRow物件時,可在TableRow下新增子控制元件,預設情況下,每個子控制元件佔據一列。有多少個子控制元件就有多少列
當為View時,該View將獨佔一行


4.RelativeLayout相對佈局   

一種非常靈活的佈局方式
通過指定介面元素與其他元素的相對位置關係,確定介面中所有元素的佈局位置
特點:能夠最大程度保證在各種螢幕型別的手機上正確顯示介面佈局



佈局範例

<?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"
    tools:context="com.example.jreduch7292.BuJuActivity">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="熱門評論"
        android:textColor="#f40505"
        android:layout_marginLeft="80dp"
        android:textSize="30dp"
        />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"

        >
        <ImageView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:src="@mipmap/zyf"
            />
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"

            >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="HighSmile山人"
                android:textColor="#1048ef"
                android:textSize="30dp"
                />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="丹麥治安一直都很好,這種事估計可以震動他們全國了"
                android:textColor="#000000"
                android:textSize="30dp"
                />

        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="90dp"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        android:background="#8c8282"
        >
        <ImageView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:src="@mipmap/zyfzyf"
            />
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="丹麥連發2起槍擊案致1死6傷尚不清楚是否相關"
            android:textColor="#000000"
            android:textSize="25dp"
            />

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="5小時前"
            android:textColor="#000000"
            android:textSize="20dp"
            />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/like"
            android:layout_marginLeft="50dp"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="200"
            android:textColor="#000000"
            android:textSize="20dp"
            />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/message"
            android:layout_marginLeft="30dp"
            />
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="1"
            android:textColor="#000000"
            android:textSize="20dp"
            />

    </LinearLayout>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="檢視1條評論"
        android:textColor="#1295f2"
        android:textSize="25dp"
        android:layout_marginLeft="80dp"
        />
</LinearLayout>
</RelativeLayout>


高階控制元件圖片左右劃屏

<pre name="code" class="java">package com.example.jreduch7292;

import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;

import java.util.ArrayList;
import java.util.List;

import uk.co.senab.photoview.PhotoView;

public class ViewPagerActivity extends AppCompatActivity {
private ViewPager vp;
    private List<PhotoView> myData;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_pager);
        vp= (ViewPager) findViewById(R.id.vp);
        myData=new ArrayList<>();

        PhotoView img=new PhotoView(this);
        img.setImageResource(R.mipmap.zyfzyf);
         myData.add(img);
        img=new PhotoView(this);
        img.setImageResource(R.mipmap.zyf);
        myData.add(img);
        img=new PhotoView(this);
        img.setImageResource(R.mipmap.zz);
        myData.add(img);
        img=new PhotoView(this);
        img.setImageResource(R.mipmap.zzz);
        myData.add(img);
        vp.setAdapter(new MyViewPagerAdapter(myData));
    }

    public class MyViewPagerAdapter extends PagerAdapter{
private  List<PhotoView> myData;
        public MyViewPagerAdapter(List<PhotoView> myData){
            this.myData=myData;
        }
        @Override
        public int getCount() {
            return myData.size();
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==object;
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            container.addView(myData.get(position));
            return myData.get(position);
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView(myData.get(position));
        }
    }
}





作者:沖天之峰   20160729

相關推薦

Android佈局方式——LinearLayoutRelativeLayoutTableLayout....

Android五種佈局方式——LinearLayout、RelativeLayout 、TableLayout.... Android使用XML宣告介面佈局 將程式的表現層和控制層分離 修改使用者介面時,無需更改程式的原始碼 視覺化工具設計使用者介面 Android五種佈

Android學習——佈局方式

android中常見佈局: - RelativeLayout相對佈局 - AbsoluteLayout絕對佈局 - LinearLayout線性佈局 - TableLayout表格佈局 - FrameLayout幀佈局 注意:佈局儘可能不要

Android中常用的佈局方式:AbsoluteLayout

絕對佈局中將所有的子元素通過設定android:layout_x 和 android:layout_y屬性,將子元素的座標位置固定下來,即座標(android:layout_x, android:layout_y) ,layout_x用來表示橫座標,layout

Android中常用的佈局方式:TableLayout

適用於多行多列的佈局格式,每個TableLayout是由多個TableRow組成,一個TableRow就表示TableLayout中的每一行,這一行可以由多個子元素組成。實際上TableLayout和T

HTML+CSS 佈局方式

已知佈局元素的高度,寫出三欄佈局,要求左欄、右欄寬度各為300px,中間自適應。 一、浮動佈局 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <tit

佈局方式

線性佈局 LinearLayout是線性佈局控制元件,它包含的子控制元件將以橫向或豎向的方式排列。 LinearLayout本身常用到的兩個屬性 android:orientation=”vertical”----該屬性決定他子類控制元件的排布方式(vertical:垂直;

Android 學習之《Android程式設計權威指南》第二版 程式碼+筆記整理

(程式碼)GeoQuiz最終開發 GeoQuiz應用初步開發 GeoQuiz應用升級開發 解決GeoQuiz應用旋轉恢復第一題的BUG 不展示編譯器自動完成的程式碼,僅提供手動修改或者編寫的程式碼。 省略了先前一些程式碼,可參照上方連結。 升級內容: 增加作弊按鈕,給使用者提

Android開發過程中的坑及解決方法收錄

1.某個控制元件要放在Linearlayout佈局的底部(底部導航條) <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.

Android練習專案 Mp3播放器實現 歌詞同步播放

其實到後面就需要我們如何顯示歌詞,對於歌詞的同步顯示還是比較好實現的,主要通過判斷當前播放的時間和每個結點的歌詞的時間的大小,來同步對應到結點的資料,現在就是如何來實現這個問題。 其實,這個時候就需要自定義控制元件來實現。 第一步需要自定義View的屬性。

LinearLayoutRelativeLayoutGridLayout目前安卓常用的三佈局

          **LinearLayout、RelativeLayout、GridLayout安卓常用佈局**------------------------------------------

Android佈局方式

線性佈局 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orienta

Android資料儲存方式之SQLite資料庫儲存 載入SD卡資料庫 sql操作 事務 防止SQL注入

資料庫 前言 資料庫儲存 資料庫建立 內建儲存資料庫 外接儲存資料庫 編寫DAO 插入操作 更新操作 刪除操作 查詢操作

Android資料儲存方式之檔案儲存 內部儲存 外部儲存 檔案讀取儲存操作封裝

檔案儲存 前言 檔案儲存 記憶體 內部儲存 外部儲存 內部儲存操作 API 讀寫操作 外部儲存操作 公共目錄 私有目錄

java swing 常用的三佈局方式:邊界佈局佈局網格佈局管理器

作者:firstmiki 來源:firstmiki的部落格 著作權歸作者所有,轉載請聯絡作者獲得授權。 這篇博文僅僅簡單介紹了三種常見的佈局管理器,都是一些簡單應用; 一、 邊界佈局管理器(FlowLayout) /* * 功能:演示邊界佈局管理器:元件的位

Android開發之基本控制元件和詳解佈局方式

Android中的控制元件的使用方式和iOS中控制元件的使用方式基本相同,都是事件驅動。給控制元件新增事件也有介面回撥和委託代理的方式。今天這篇部落格就總結一下Android中常用的基本控制元件以及佈局方式。說到佈局方式Android和iOS還是區別挺大的,在iOS中有F

Android開發的之基本控制元件和詳解佈局方式

Android中的控制元件的使用方式和iOS中控制元件的使用方式基本相同,都是事件驅動。給控制元件新增事件也有介面回撥和委託代理的方式。今天這篇部落格就總結一下Android中常用的基本控制元件以及佈局方式。說到佈局方式Android和iOS還是區別挺大的,在iOS中有Frame絕對佈局和AutoL

Android資料儲存方式

1、分類 資料儲存在開發中是使用最頻繁的,Android平臺中實現資料儲存主要有5種方式,分別是: SQLite: SQLite是一個輕量級嵌入式資料庫,支援基本SQL語法,是常被採用的一種資料儲存方式。Android為此資料庫提供了一個名為SQLiteDatabase的類,

Android實現計算器佈局佈局方式TableLayout表格佈局

表格佈局:tablelayout table佈局不支援跨行跨列,所以主要佈局的思想就是表格巢狀 效果 outline 之前一直到不知道怎麼用表格實現計算器的佈局,查資料的時候也一直在考慮跨行跨列來實現,網上說table佈局不

請介紹下Android中常用的佈局

常用五種佈局方式,分別是:FrameLayout(框架佈局),LinearLayout (線性佈局),AbsoluteLayout(絕對佈局),RelativeLayout(相對佈局),TableLayout(表格佈局)。 LinearLayout: 線性佈

Android中常用的佈局

Android佈局是應用介面開發的重要一環,在Android中,共有五種佈局方式,分別是:FrameLayout(框架布局),LinearLayout (線性佈局),AbsoluteLayout(絕對佈