`
文章列表
先看一下图,有个直观的了解,向下拖动handle就“开门了”: 此DragLayout继承自LinearLayout,这样使得布局变的简单。 我把最顶部的View叫做HeadView,中间的叫“把手”HandleView,底部的叫ContentView,姑且这样叫着。 只有把手可以拖动,下面的ContentView不可以! 只要给DragLayout设置一个background,就会产生一个渐变显示背后布局的效果。 由于DragLayout继承自LinearLayout,所以背后的布局不属于DragLayout的范畴, DragLayout只有三部分组成(HeadView,HandleVi ...
DragLayout显示在屏幕三分之二的地方,往下拖,即可显示背后的View import android.content.Context; import android.graphics.Rect; import android.support.v4.view.ViewCompat; import android.support.v4.widget.ViewDragHelper; import android.util.AttributeSet; import android.view.*; import android.widget.FrameLayout; im ...
按比例放大图片,不拉伸失真 import android.content.Context; import android.util.AttributeSet; import android.widget.ImageView; public class AspectRatioImageView extends ImageView { public AspectRatioImageView(Context context) { super(context); } public AspectRatioImageView(Contex ...
仿照淘宝和聚美优品,在商品详情页,向上拖动时,可以加载下一页。使用ViewDragHelper,滑动比较流畅。 scrollView滑动到底部的时候,再行向上拖动时,添加了一些阻力。 只支持两页! import android.annotation.SuppressLint; import android.content.Context; import android.support.v4.view.GestureDetectorCompat; import android.support.v4.view.ViewCompat; import android.support ...
一个简单的小工具类,用来设置警示 View 的呼吸式背景颜色 import android.graphics.Color; import android.os.AsyncTask; import android.os.Build; import android.view.View; import java.util.Date; /** * 一个简单的小工具类,用来设置警示 View 的呼吸式背景颜色 * * https://github.com/drakeet/BreathingViewHelper * * Created by drakeet on ...
带有增加与减少按钮的数量选择控件 用法: <me.himanshusoni.quantityview.QuantityView     xmlns:app="http://schemas.android.com/apk/res-auto"     android:id="@+id/quantityView_default"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android ...
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; public class MainActivity extends Activity implements OnClickListener { View main; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreat ...
单手操作图片控件 镜像、置顶、缩放、移动 import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Canvas; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolba ...
不仅实现了Lollipop中打开新的activity 的zoom效果(根据点击位置逐步展开过渡到新的界面),还实现了一个弹簧效果的ViewPager public class MainActivity extends FragmentActivity { private Context context; private GridView gridView; private ArrayList<Integer> imgList = new ArrayList<>(); private ArrayList<ImageI ...
适用于版本大于等于19以上。 import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Build; import android.view.View; import android.view.ViewGroup; /** * Created by zhy on 15/9/21. */ public class StatusBarC ...
不知从什么时候起,码农们都热衷于果冻、粘黏、水滴效果了,认为效果很酷很新奇 但是只是用而已,知道原理的并不多 本篇将实现一个最基本的效果(我也不知道该叫什么效果),见图 原理很简单,就是利用的了Path的quadTo方法,该函数用于绘制贝塞尔曲线 我懒得打字了,直接看代码: import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Pa ...
TabLayout是android design包内的控件; 一般情况下,它总是喜欢和ViewPager成对出现; 典型的像如下的布局: <!-- 如果你屏幕上显示只有少数 tab 的时候,可以设置tabMode="fixed",若很多需要拖动,则设置tabMode="scroll" --> <!-- 如果 tabMode 设置成 scrollable 的,则tabGravity属性将会被忽略 --> <!-- 其他可设置属性 app:tabIndicatorColor="#FF ...
接上一篇 由简到繁,循序渐进 实现了: 0,点击&长按事件; 1,header; 2,footer; 3,加载更多; 4,还想下拉刷新?“想的美,这本就不是RecyclerView该做的事情!” import java.util.ArrayList; import java.util.List; import com.example.test.R; import com.widget.view.HeaderFooterAdapter.ViewHolder; import android.support.v7.widget.RecyclerView; import ...
知道原理后,为RecyclerView实现同时带header和footer也就分分钟的事情了 你可以把GridLayoutManager(this, 3)中的第二个参数设置为1,那就变成一个带header和footer的ListView了。 注意,这里header和footer可以为null(没人规定一定要设置header或footer的,呵呵) import java.util.ArrayList; import java.util.List; import com.example.test.R; import com.widget.view.HeaderFooterAdap ...
RecyclerView是一个高度可定制性的View 本文将使用RecyclerView实现带header的grid 为了用RecyclerView创建一个带header的grid: 1,定义一个具有两种view类型的adapter,一个为header,一个为普通item。 2,nflate一个header,把它传递给adapter。 3,重写GridLayoutManager中的setSpanSizeLookup,在header所处的位置返回和span count (列数)相等的 span size。 import java.util.ArrayList; import jav ...
Global site tag (gtag.js) - Google Analytics