2017-03-07 21 views
4

イメージがあり、複数の画面に分割して表示したいです。私は画像の1つのthridが画面全体を占めるようにしたい。イメージの1/3をフルスクリーンで表示する方法

これまでのところ私は、画面の3分の1を取るために、画像の1/3を取得することができます:

Widget buildBGImage(String imageName) { 
    return new Container(
     decoration: new BoxDecoration(border: new Border.all()), 
     constraints: new BoxConstraints.expand(), 
    child: new SizedBox.expand(
     child: new ClipRect(
      clipper: new WidthClipper(currentPage), 
      child: new Image.asset(
       "assets/images/$imageName", 
       fit: ImageFit.fill) 
    ) 
), 
); 

}

class WidthClipper extends CustomClipper<Rect> { 
    int section; 

    WidthClipper(this.section); 

    @override 
    Rect getClip(Size size) { 
    return new Rect.fromLTWH(
     size.width * (section/3), 0.0, size.width/3, size.height); 
    } 

    @override 
    bool shouldReclip(WidthClipper oldClipper) => true; 
} 

が、私はどのように上の銀行を描いています1/3が画面全体を占めるようにします。

答えて

1

これは画像データをフルスクリーンにどのように合わせるかの質問ではありませんImage?また、オリジナル画像の3分の1のアスペクト比がフルスクリーンのアスペクト比に合わない場合はどうしますか?

この、フルスクリーンポートレートモードでの風景画像を、例えば、ディスプレイ(略)中央第三:それぞれ

new Image.network(
    "https://upload.wikimedia.org/wikipedia/commons/5/5a/Monument_Valley_2.jpg", 
    fit: ImageFit.fitHeight, 
    alignment: FractionalOffset.center, 
) 

alignment: FractionalOffset.centerLeftながらalignment: FractionalOffset.centerRightディスプレイ(おおよそ)左右の第三、。

+0

これはうまくいくと思います。私の問題は、この方法をページビューと共に使用するとページ間でシームレスになることではないということです。 – Mark

+0

@Mark私はFlutterも非常に新しく、どのように進めるべきかもわかりません。あなたのソースイメージが3分の1に完全に分割されていない場合はどのように扱いますか?より多くの/ 3ページ未満を使用するだけですか?最初と最後のページに左と右のパディングを追加しますか? –