Android の画面上に配置する部品(ビュー)の位置を決める属性として、android:gravity と android:layout_gravity がありますが、この2つの属性の違いを調べてみました。
android:gravity
android:gravity 属性は、公式サイトの説明を見ると次のように書かれています:
Specifies how an object should position its content, on both the X and Y axes, within its own bounds.
これを意訳すると「あるオブジェクトが、その中に含むオブジェクトを、自身の境界内でX軸/Y軸上どのように配置するかを指定する」ということになります。
例えば、あるオブジェクトAに別のオブジェクトBが含まれているとき、A対して android:gravity=”left” と指定すると、BはAの中で左寄せにして配置されます。
android:layout_gravity
android:layout_gravity 属性は、公式サイトの説明を見ると次のように書かれています:
Defines how the child view should be positioned, on both the X and Y axes, within its enclosing layout.
これを意訳すると「子要素(ビュー)が親要素の中でX軸/Y軸上どのように配置されるかを定義する」ということになります。
例えば、あるオブジェクトAに別のオブジェクトBが含まれているとき、B対して android:layout_gravity=”left” と指定すると、BはAの中で左寄せにして配置されます。
参考
公式サイトの gravity の説明ページ: R.attr | Android Developers
公式サイトの layout_gravity の説明ページ: R.attr | Android Developers