怎样投网站广告,视频拍摄手法,家里的网络用哪个公司,赚钱网本文主要包括以下内容
侧滑菜单DrawerLayout实现 CardView实现
DrawerLayout介绍
drawerLayout是Support Library包中实现了侧滑菜单效果的控件#xff0c;可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后#xff0c;google借鉴而出现的产物。drawerLayout分…本文主要包括以下内容
侧滑菜单DrawerLayout实现 CardView实现
DrawerLayout介绍
drawerLayout是Support Library包中实现了侧滑菜单效果的控件可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后google借鉴而出现的产物。drawerLayout分为侧边菜单和主内容区两部分侧边菜单可以根据手势展开与隐藏drawerLayout自身特性主内容区的内容可以随着菜单的点击而变化这需要使用者自己实现
drawlayout实现
main布局文件
android.support.v4.widget.DrawerLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoandroid:idid/drawer_layoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:fitsSystemWindowstrueLinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid.support.v7.widget.Toolbarandroid:idid/toolbarandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:background?attr/colorPrimaryapp:layout_collapseModepinapp:popupThemestyle/ThemeOverlay.AppCompat.Light //LinearLayoutandroid.support.design.widget.NavigationViewandroid:idid/navigation_viewandroid:layout_widthwrap_contentandroid:layout_heightmatch_parentandroid:layout_gravitystartapp:headerLayoutlayout/navigation_headerapp:menumenu/drawer //android.support.v4.widget.DrawerLayout
其中侧滑菜单位置是start,并且包括了headerLayout与menu
headerLayout实现
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/lib/com.zj.material3navigationandroid:layout_widthmatch_parentandroid:layout_height192dpandroid:background?attr/colorPrimaryDarkandroid:gravitycenterandroid:orientationverticalandroid:padding16dpandroid:themestyle/ThemeOverlay.AppCompat.Darkde.hdodenhof.circleimageview.CircleImageViewandroid:idid/profile_imageandroid:layout_width72dpandroid:layout_height72dpandroid:layout_marginTop20dpandroid:srcmipmap/profileapp:border_colorcolor/primary_lightapp:border_width2dp /TextViewandroid:layout_marginTop10dpandroid:textSize18spandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textAPP开发者android:gravitycenterandroid:textAppearancestyle/TextAppearance.AppCompat.Body1//LinearLayout
注意由于使用了CircleImageView要在depencyies中加入
compile de.hdodenhof:circleimageview:1.3.0
并且由于jcenter中库有限可能还要加入 allprojects {repositories {jcenter()maven { url https://jitpack.io }}
}
menu菜单实现
?xml version1.0 encodingutf-8?
menu xmlns:androidhttp://schemas.android.com/apk/res/androidgroup android:checkableBehaviorsingleitemandroid:idid/navigation_item_exampleandroid:icondrawable/ic_favoriteandroid:titlestring/navigation_example /itemandroid:idid/navigation_item_blogandroid:icondrawable/ic_favoriteandroid:titlestring/navigation_my_blog /itemandroid:idid/navigation_item_aboutandroid:icondrawable/ic_favoriteandroid:titlestring/navigation_about //group/menu
menu也可以设置子menu,下面是一个例子
?xml version1.0 encodingutf-8?
menu xmlns:androidhttp://schemas.android.com/apk/res/androidgroupandroid:checkableBehaviorsingleitemandroid:idid/drawer_homeandroid:checkedtrueandroid:icondrawable/ic_home_black_24dpandroid:titlestring/home/itemandroid:idid/sectionandroid:icondrawable/ic_more_horiz_black_24dpandroid:title分组1menuitemandroid:idid/drawer_favouriteandroid:icondrawable/ic_favorite_black_24dpandroid:titlestring/favourite/itemandroid:idid/drawer_downloadedandroid:icondrawable/ic_file_download_black_24dpandroid:titlestring/downloaded//menu/itemitemandroid:idid/section2android:title分组2menuitemandroid:idid/drawer_moreandroid:icondrawable/ic_more_horiz_black_24dpandroid:titlestring/more/itemandroid:idid/drawer_settingsandroid:icondrawable/ic_settings_black_24dpandroid:titlestring/settings//menu/item/group
/menu
效果如下 java代码的实现
package com.zj.material3navigation;import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;public class MainActivity extends AppCompatActivity {Toolbar mToolbar;DrawerLayout mDrawerLayout;ActionBarDrawerToggle mDrawerToggle;NavigationView mNavigationView;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//设置ToolbarmToolbar (Toolbar) findViewById(R.id.toolbar);setSupportActionBar(mToolbar);setTitle(startNow);//设置DrawerLayoutmDrawerLayout (DrawerLayout) findViewById(R.id.drawer_layout);mDrawerToggle new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar,R.string.drawer_open, R.string.drawer_close){//关闭侧边栏时响应Overridepublic void onDrawerClosed(View drawerView) {super.onDrawerClosed(drawerView);}//打开侧边栏时响应Overridepublic void onDrawerOpened(View drawerView) {super.onDrawerOpened(drawerView);}};mDrawerToggle.syncState();mDrawerLayout.setDrawerListener(mDrawerToggle);//设置NavigationView点击事件mNavigationView (NavigationView) findViewById(R.id.navigation_view);setupDrawerContent(mNavigationView);//设置NavigationView点击事件}//点击侧边栏菜单的响应事件private void setupDrawerContent(NavigationView navigationView) {navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {Overridepublic boolean onNavigationItemSelected(MenuItem menuItem) {switch (menuItem.getItemId()) {case R.id.navigation_item_example://switchToExample();break;case R.id.navigation_item_blog://switchToBlog();break;case R.id.navigation_item_about://switchToAbout();break;}menuItem.setChecked(true);mDrawerLayout.closeDrawers();return true;}});}}
实现了打开与关闭侧边栏的响应事件点击侧边栏按钮的响应事件等
参考链接
Design Support Library (I): Navigation View的使用 - 泡在网上的日子
android官方侧滑菜单DrawerLayout详解 - 泡在网上的日子
效果如下 CardView实现
首先加入依赖库
dependencies {....compile com.android.support:cardview-v7:22.2.0
}
layout布局
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroid.support.v7.widget.Toolbarandroid:idid/toolbarandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_alignParentToptrueandroid:background?attr/colorPrimary/android.support.v7.widget.Toolbarandroid.support.v4.widget.NestedScrollViewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:scrollbarsnonexmlns:androidhttp://schemas.android.com/apk/res/android
LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroid:paddingTop5dpxmlns:androidhttp://schemas.android.com/apk/res/android
android.support.v7.widget.CardViewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentapp:cardCornerRadius10dpapp:cardElevation10dpandroid:layout_marginBottomdimen/card_marginandroid:layout_marginLeftdimen/card_marginandroid:layout_marginRightdimen/card_marginxmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoandroid:clickabletrueandroid:foreground?android:attr/selectableItemBackgroundLinearLayoutstylestyle/CardView.Contentandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalImageViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:srcdrawable/book1 /LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginLeft10dpandroid:orientationverticalTextViewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textstring/book_title_1android:textAppearancestyle/TextAppearance.AppCompat.Titleandroid:textColorcolor/primary_text /TextViewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginTop2dpandroid:textstring/book_description_1android:textColorcolor/secondary_text //LinearLayout/LinearLayout/android.support.v7.widget.CardViewandroid.support.v7.widget.CardViewxmlns:apphttp://schemas.android.com/apk/res-autoandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginBottomdimen/card_marginandroid:layout_marginLeftdimen/card_marginandroid:layout_marginRightdimen/card_marginandroid:layout_marginTopdimen/card_marginandroid:onClickgoDetailapp:cardCornerRadius10dpapp:cardElevation10dpLinearLayoutstylestyle/CardView.Contentandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalImageViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:srcdrawable/book2 /LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginLeft10dpandroid:orientationverticalTextViewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textstring/book_title_2android:textAppearancestyle/TextAppearance.AppCompat.Titleandroid:textColorcolor/primary_text /TextViewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginTop2dpandroid:textstring/book_description_2android:textColorcolor/secondary_text //LinearLayout/LinearLayout/android.support.v7.widget.CardViewandroid.support.v7.widget.CardViewxmlns:apphttp://schemas.android.com/apk/res-autoandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginBottomdimen/card_marginandroid:layout_marginLeftdimen/card_marginandroid:layout_marginRightdimen/card_marginandroid:layout_marginTopdimen/card_marginandroid:onClickgoDetailapp:cardCornerRadius10dpapp:cardElevation10dpLinearLayoutstylestyle/CardView.Contentandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalImageViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:srcdrawable/book3 /LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginLeft10dpandroid:orientationverticalTextViewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textstring/book_title_3android:textAppearancestyle/TextAppearance.AppCompat.Titleandroid:textColorcolor/primary_text /TextViewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginTop2dpandroid:textstring/book_description_3android:textColorcolor/secondary_text //LinearLayout/LinearLayout/android.support.v7.widget.CardView
/LinearLayout/android.support.v4.widget.NestedScrollView/LinearLayout
app:cardBackgroundColor 设置CardView背景颜色 app:cardCornerRadius 设置CardView圆角大小 app:cardElevation 设置CardView阴影高度
添加波纹点击效果
默认情况CardView是不可点击的并且没有任何的触摸反馈效果。触摸反馈动画在用户点击CardView时可以给用户以视觉上的反馈。为了实现这种行为你必须提供一下属性
android.support.v7.widget.CardView...android:clickabletrueandroid:foreground?android:attr/selectableItemBackground...
/android.support.v7.widget.CardView
在加载图片时可能会遇到图上尺寸的问题
(1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
ldpi:240x320
mdpi320x480
hdpi480x800、480x854
xhdpi至少960*720
xxhdpi1280×720 从上表可以得出如下结论
图片放在drawable中等同于放在drawable-mdpi中原因为drawable目录不具有屏幕密度特性所以采用基准值即mdpi 图片放在某个特定drawable中比如drawable-hdpi如果设备的屏幕密度高于当前drawable目录所代表的密度则图片会被放大否则会被缩小 放大或缩小比例 设备屏幕密度 / drawable目录所代表的屏幕密度为了更全面的适配所有设备我们应该提供一套针对主流屏幕密度的图片目前为hdpi或xhdpi其他密度通过系统自动缩放得到图片
参考链接:
Android开发–CardView使用-爱编程 Android中屏幕密度和图片大小的关系分析 - Android移动开发技术文章_手机开发 - 红黑联盟 res里面的drawable(ldpi、mdpi、hdpi、xhdpi、xxhdpi) - xfyn - 博客园
效果如下