一、com.android.support:design
1、com.android.support:design 是 Android 官方提供的一个用于 Material Design 风格的 UI 控件库。通常使用在 Android App 开发中,可以帮助开发者快速、简单的实现 Material Design 风格的界面。下面是一个实现 Toolbar 和 Navigation Drawer 的示例代码:
XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/nav_menu" />
</android.support.v4.widget.DrawerLayout>
Java 代码:
public class MainActivity extends AppCompatActivity {
private DrawerLayout mDrawerLayout;
private Toolbar mToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, mDrawerLayout, mToolbar, R.string.app_name, R.string.app_name);
mDrawerLayout.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_home) {
// Handle the home action
} else if (id == R.id.nav_messages) {
// Handle the messages action
} else if (id == R.id.nav_friends) {
// Handle the friends action
}
mDrawerLayout.closeDrawer(GravityCompat.START);
return true;
}
});
}
}
2、以上代码实现了 Toolbar 和 Navigation Drawer 控件的显示,通过调用 ActionBarDrawerToggle 类的 syncState() 方法可以使 Toolbar 和 Navigation Drawer 并联使用。此外,NavigationView 控件的 setNavigationItemSelectedListener() 方法用于响应 NavigationView 中菜单项的选择事件。
二、com.android.support:percent
1、com.android.support:percent 是 Android 官方提供的一个用于百分比布局的 UI 控件库。它是基于 RelativeLayout 布局实现的,可以让开发者使用百分比的方式来布局控件。下面是一个通过百分比布局控制 ImageView 大小的示例代码:
XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_heightPercent="50%"
app:layout_marginStartPercent="25%"
app:layout_marginTopPercent="25%"
app:layout_widthPercent="50%"
android:src="@drawable/image" />
</RelativeLayout>
2、以上代码中,通过使用 app:layout_heightPercent、app:layout_marginStartPercent、app:layout_marginTopPercent、app:layout_widthPercent 属性控制 ImageView 的大小和位置。这里 app:layout_heightPercent、app:layout_widthPercent 属性的值为 “50%”,表示 ImageView 的高和宽整体都是相对于父布局的一半。而 app:layout_marginStartPercent、app:layout_marginTopPercent 属性的值为 “25%”,则表示 ImageView 的左偏移量和上偏移量都是相对于父布局的一4分之一。
三、com.android.support:appcompat-v7
1、com.android.support:appcompat-v7 是 Android 官方提供的一个用于支持旧版 Android 系统的 UI 控件库。通常使用在兼容性开发中,可以保证 App 在不同版本的 Android 系统上都能正常运行。下面是一个实现 Toolbar 的示例代码:
XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:title="My Toolbar" />
Java 代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
}
2、以上代码实现了 Toolbar 控件的显示,并分别在 XML 和 Java 中设置了其大小、背景色和标题。此外,在 Java 中调用 setSupportActionBar() 方法可以让 Toolbar 接管 Activity 的 ActionBar。
四、com.android.support.constraint
1、com.android.support.constraint 是 Android 官方提供的一个用于约束布局(ConstraintLayout)的 UI 控件库。引入它可以在布局中使用 ConstraintLayout,进行复杂和响应式布局的开发,大大提高了 UI 布局的灵活性和可读性。下面是一个使用 ConstraintLayout 实现登录界面的示例代码:
XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/logo"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/verticalGuideline" />
<android.support.constraint.Guideline
android:id="@+id/verticalGuideline"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintGuide_percent="0.5" />
<EditText
android:id="@+id/usernameEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="Username"
android:inputType="text"
app:layout_constraintTop_toBottomOf="@id/verticalGuideline"
app:layout_constraintStart_toStartOf="@id/guideline"
app:layout_constraintEnd_toEndOf="@id/guideline" />
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintGuide_percent="0.35" />
<EditText
android:id="@+id/passwordEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="Password"
android:inputType="textPassword"
app:layout_constraintTop_toBottomOf="@id/usernameEditText"
app:layout_constraintStart_toStartOf="@id/guideline"
app:layout_constraintEnd_toEndOf="@id/guideline" />
<Button
android:id="@+id/loginButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Login"
app:layout_constraintTop_toBottomOf="@id/passwordEditText"
app:layout_constraintStart_toStartOf="@id/guideline"
app:layout_constraintEnd_toEndOf="@id/guideline" />
</android.support.constraint.ConstraintLayout>
2、以上代码使用 ConstraintLayout 实现了登录界面,通过设置 Guideline 控件的位置和百分比,实现了 ImageView、EditText 和 Button 的位置控制。此外,ConstraintLayout 还可以通过设置约束比例、权重、尺寸等属性来控制 UI 控件的位置和大小,具有更高的灵活性和可扩展性。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/237273.html