CardView和SeekBar使用
来源:互联网 发布:excel 重复数据统计 编辑:程序博客网 时间:2024/05/24 15:39
用SeekBar控制CardView的边角和景深
CardView继承FrameLayout,FrameLayout用于在屏幕部分区域去显示一个控件。CardView的elevation特性需要在API21以上才能使用。
1、新建activity_card_view.xml
activity_card_view.xml,CardViewActivity的布局文件
框架布局是最简单的布局形式,所有添加到这个布局中的文件都以层叠方式显示
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.example.android.cardview.CardViewActivity" tools:ignore="MergeRootFrame" />
2、新建activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout style="@style/Widget.SampleMessageTile" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView style="@style/Widget.SampleMessage" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/horizontal_page_margin" android:layout_marginRight="@dimen/horizontal_page_margin" android:layout_marginTop="@dimen/vertical_page_margin" android:layout_marginBottom="@dimen/vertical_page_margin" android:text="@string/intro_message" /> </LinearLayout></LinearLayout>
3、新建fragment_card_view.xml
fragment_card_view.xml碎片布局CardView和SeekBar
ScrollView滚动视图是指当拥有很多内容,屏幕显示不完时,需要通过滚动跳来显示的视图。ScrollView只支持垂直滚动。
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" > <android.support.v7.widget.CardView android:id="@+id/cardview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:elevation="100dp" card_view:cardBackgroundColor="@color/cardview_initial_background" card_view:cardCornerRadius="8dp" android:layout_marginLeft="@dimen/margin_large" android:layout_marginRight="@dimen/margin_large" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/margin_medium" android:text="@string/cardview_contents" /> </android.support.v7.widget.CardView> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/margin_large" android:orientation="horizontal" > <TextView android:layout_width="@dimen/seekbar_label_length" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="@string/cardview_radius_seekbar_text" /> <SeekBar android:id="@+id/cardview_radius_seekbar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/margin_medium" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="@dimen/seekbar_label_length" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="@string/cardview_elevation_seekbar_text" /> <SeekBar android:id="@+id/cardview_elevation_seekbar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/margin_medium" /> </LinearLayout> </LinearLayout></ScrollView>
4、建立CardViewActivity,使用FragmentManager与碎片CardViewFragment关联
public class CardViewActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_card_view); if (savedInstanceState == null) { getFragmentManager().beginTransaction() .add(R.id.container, CardViewFragment.newInstance()) .commit(); } }}
5、建立CardViewFragment,实例化CardView和SeekBar,使用setOnSeekBarChangeListener()监听SeekBar变化,setRadius()和setElevation()分别改变CardView的边角弧度和立体深度。
/** Copyright 2014 The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/package com.example.android.cardview;import android.app.Fragment;import android.os.Bundle;import android.support.v7.widget.CardView;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.SeekBar;/** * Fragment that demonstrates how to use CardView. */public class CardViewFragment extends Fragment { private static final String TAG = CardViewFragment.class.getSimpleName(); /** The CardView widget. */ //@VisibleForTesting CardView mCardView; /** * SeekBar that changes the cornerRadius attribute for the {@link #mCardView} widget. */ //@VisibleForTesting SeekBar mRadiusSeekBar; /** * SeekBar that changes the Elevation attribute for the {@link #mCardView} widget. */ //@VisibleForTesting SeekBar mElevationSeekBar; /** * Use this factory method to create a new instance of * this fragment using the provided parameters. * * @return A new instance of fragment NotificationFragment. */ public static CardViewFragment newInstance() { CardViewFragment fragment = new CardViewFragment(); fragment.setRetainInstance(true);//控制碎片实例能否改变配置 return fragment; } public CardViewFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_card_view, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mCardView = (CardView) view.findViewById(R.id.cardview); mRadiusSeekBar = (SeekBar) view.findViewById(R.id.cardview_radius_seekbar); mRadiusSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {//progress值默认0-100,可用setMax(int)设定最大值 Log.d(TAG, String.format("SeekBar Radius progress : %d", progress)); mRadiusSeekBar.setMax(200); mCardView.setRadius(progress);//更新cardview的边角弧度 } @Override public void onStartTrackingTouch(SeekBar seekBar) { //Do nothing } @Override public void onStopTrackingTouch(SeekBar seekBar) { //Do nothing } }); mElevationSeekBar = (SeekBar) view.findViewById(R.id.cardview_elevation_seekbar); mElevationSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { Log.d(TAG, String.format("SeekBar Elevation progress : %d", progress)); mCardView.setElevation(progress); } @Override public void onStartTrackingTouch(SeekBar seekBar) { //Do nothing } @Override public void onStopTrackingTouch(SeekBar seekBar) { //Do nothing } }); }}
6、AndroidManifest.xml声明权限和配置定义文件。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.cardview" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="21" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".CardViewActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
0 0
- CardView和SeekBar使用
- CardView卡片,SeekBar
- SeekBar自定义和使用
- SeekBar的使用和竖向的SeekBar
- CardView的介绍和使用
- RecyclerView和CardView的使用
- Android 使用RecycleView和CardView
- SeekBar的使用和自定义
- CardView使用
- cardView使用
- CardView使用
- CardView使用
- Android RecyclerView和CardView的结合使用
- Android CardView使用和导入出错问题
- 关于recyclerview和cardview使用中的NoClassFoundException
- RecyclerView和CardView的使用以及注意
- Android 中简单使用RecyclerView 和CardView
- RecyclerView和CardView的结合使用
- 【SICP练习】142 练习3.77
- 更改IntelliJ的快捷键为Eclipse风格,并且恢复Alt+/代码自动补全快捷键code completion
- Android Studio 运行时出现 finished with non-zero exit value 2 错误分析
- 二阶段提交和三阶段提交算法的理解
- 滑动关闭实现
- CardView和SeekBar使用
- 【j2ee spring】8、整合SSH框架(1)
- zoj 3197 Google Book 【区间覆盖】
- POJ 1226 Substrings
- Android启动流程分析(五) init.rc的读取
- Thinkphp Nginx下的配置
- 【XShell】XShell中中文显示乱码解决方法
- 模拟登陆校园网 图个省事方便
- Sicily 1305. Who’s Winner?