zoukankan      html  css  js  c++  java
  • CollapsingToolbarLayout的使用,实现向上滑动时,图片自动压缩消失,下拉到最上面图片显示出来

    代码:CollapsingToolbarLayout的使用

    1.activity_main.xml

    <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout 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">
    <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="200dp" android:fitsSystemWindows="true">
    <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:minHeight="200dp" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginEnd="10dp" app:expandedTitleMarginStart="10dp" app:collapsedTitleGravity="left" app:collapsedTitleTextAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" app:layout_scrollFlags="scroll|exitUntilCollapsed">
    <ImageView android:id="@+id/iv" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" app:layout_collapseMode="parallax" app:layout_collapseParallaxMultiplier="0.5"/>
    <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" /> </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>
    <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior">
    <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="100dp"> <TextView android:layout_width="0dp" android:layout_weight="4" android:background="@color/colorPink" android:text="访客记录" android:gravity="center" android:textSize="25sp" android:textColor="#ffffff" android:layout_height="match_parent" /> <View android:layout_width="1dp" android:layout_height="match_parent"/> <TextView android:textSize="25sp" android:background="@color/colorPink2" android:layout_width="0dp" android:layout_weight="5" android:text="远程开门" android:textColor="#ffffff" android:gravity="center" android:layout_height="match_parent" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="100dp"> <TextView android:textSize="25sp" android:background="@color/colorOrange" android:layout_width="0dp" android:layout_weight="5" android:text="生活缴费" android:textColor="#ffffff" android:gravity="center" android:layout_height="match_parent" /> <View android:layout_width="1dp" android:layout_height="match_parent"/> <TextView android:layout_width="0dp" android:layout_weight="4" android:background="@color/colorOrange2" android:text="通讯录" android:gravity="center" android:textSize="25sp" android:textColor="#ffffff" android:layout_height="match_parent" />
    </LinearLayout> <include layout="@layout/item_card"/> <include layout="@layout/item_card"/> <include layout="@layout/item_card"/> <include layout="@layout/item_card"/> <include layout="@layout/item_card"/> <include layout="@layout/item_card"/> <include layout="@layout/item_card"/> <include layout="@layout/item_card"/>
    </LinearLayout> </android.support.v4.widget.NestedScrollView> </android.support.design.widget.CoordinatorLayout>

    2.item_card.xml
    <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView 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="100dp" android:layout_margin="5dp" app:cardElevation="5dp" app:contentPaddingTop="2dp" app:contentPaddingBottom="2dp">
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Learn and Share Android" android:textSize="20sp" android:layout_gravity="center"/>
    </android.support.v7.widget.CardView>

    3.MainActivity.class
    public class MainActivity extends AppCompatActivity {
    private ImageView iv; private CollapsingToolbarLayout collapsingToolbarLayout; private Toolbar toolbar;
    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
    collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar_layout); iv = (ImageView) findViewById(R.id.iv); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); toolbar.setNavigationIcon(R.mipmap.ic_drawer_home); collapsingToolbarLayout.setTitle("Demo"); collapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE); collapsingToolbarLayout.setExpandedTitleColor(Color.WHITE); iv.setImageResource(R.mipmap.ic_bg); }
    @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; }
    @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId();
    //noinspection SimplifiableIfStatement if (id == R.id.action_notifications) { Log.d("cylog","click menu"); return true; }
    return super.onOptionsItemSelected(item); } }

    4.res--->menu--->menu_main.xml
    <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yourapp="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">>
    <item android:id="@+id/action_notifications" android:title="Notifications" android:icon="@mipmap/ic_notifications" app:showAsAction="ifRoom"/>
    </menu>
    5.values--->styles.xml
    <resources><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- Customize your theme here. --> <item name="colorPrimary">#269fe2</item> <item name="colorPrimaryDark">#3A5FCD</item> <!--item name="android:textColorSecondary">#ffffff</item--> </style>
    </resources>
    6.values--->strings.xml
    <resources> <string name="app_name">Demo</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
    7.values--->dimens.xml
    <resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> </resources>
    8.values--->colors.xml
    <resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> </resources>
    9.AndroidManifies.xml
    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.yld.demo">
    <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
    </manifest>

    10.build.gradle(app)
    dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:cardview-v7:26.1.0' compile 'com.android.support:design:26.1.0' compile 'com.android.support:appcompat-v7:26.1.0' }

     
     
  • 相关阅读:
    【Nginx】url 带有 “https://” 双斜杠特殊处理
    【layui】tepmlet 格式化 table 数据
    于二零二零年:终章
    【Golang】练习-Web 处理 form 表单请求失败不刷新页面并保存输入的数据
    实现纸牌游戏的随机抽牌洗牌过程(item系列几个内置方法的实例)
    面向对象的进阶(item系列,__new__,__hash__,__eq__)
    面向对象阶段复习
    计算器实例
    反射
    静态方法staticmethod和类方法classmethod
  • 原文地址:https://www.cnblogs.com/xiaoshumiao/p/8568301.html
Copyright © 2011-2022 走看看