android让view有展现效果,让预览 RecyclerView 效果更方便的一个小技巧

简评:使用 "@tools:sample/*" 资源来让 RecyclerView(或 ListView)的效果预览更方便。

相信在大多数的 Android 开发中都会和 RecyclerView(或者 ListView)打交道。常有的一个问题就是在编码时,怎么方便的看到和调整每个 item 的显示效果。

当然啦,有经验一的开发者肯定都知道用 tools:namespace 来帮忙,今天要介绍的当然不只是这么简单。

首先,假设我们要实现的效果类似下面这样(每个 item 左边还有个头像):

2b1b6b7e4301

这里就是通过* tools:text* 来在 Android Studio 的 Preview 视图中直接显示一些简单内容(ImageView 也可以使用 tools:src)。

android:id="@+id/name"

...

tools:text="Mark Allison"/>

现在,在 Android Studio 3.0 或以上版本中我们有了更好的方法来在开发时直接显示一些示例数据 - 那就是使用 "tools:sample/" 中提供的数据。*

...>

android:id="@+id/avatar"

...

tools:src="@tools:sample/avatars" />

android:id="@+id/name"

...

tools:text="@tools:sample/full_names" />

android:id="@+id/city"

...

tools:text="@tools:sample/cities" />

android:id="@+id/date"

...

tools:text="@tools:sample/date/ddmmyy" />

android:id="@+id/description"

...

tools:text="@tools:sample/lorem/random" />

效果:

2b1b6b7e4301

当然,这些自带的数据很可能没办法满足你的需求(比如只有英文),我们还可以自己创建 Sample 数据:

2b1b6b7e4301

点击之后,文件实际所在的位置:

2b1b6b7e4301

添加头像图片(这里用的是 Android 矢量图,也可以是其他格式的图片):

2b1b6b7e4301

android:id="@+id/avatar"

...

tools:src="@sample/avatars" />

更棒的地方在于,我们还可以通过 JSON 文件的方式来组织我们的数据。比如,创建一个名为 users.json 的文件:

{

"data": [

{

"city": "北京",

"avatar": "@sample/avatars",

},

{

"city": "上海",

"avatar": "@sample/avatars"

},

{

"city": "广州",

"avatar": "@sample/avatars"

},

{

"city": "深圳",

"avatar": "@sample/avatars"

}

]

}

item 的部分布局代码:

android:id="@+id/avatar"

...

tools:src="@sample/users.json/data/avatar" />

android:id="@+id/city"

...

tools:text="@sample/users.json/data/city" />

...

此外,定义的这些 sample data 不会被打包到 APK 中,因此不必担心会增加应用的体积。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Windows 7图片预览窗格效果,可以使用AndroidRecyclerView和CardView组件来实现。 1. 首先,在布局文件中添加一个RecyclerView组件。例如: ``` <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 创建一个CardView布局文件,作为每个图片预览窗格。例如: ``` <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="8dp" android:elevation="4dp" android:padding="8dp"> <ImageView android:id="@+id/image_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:adjustViewBounds="true" android:scaleType="centerCrop" /> </android.support.v7.widget.CardView> ``` 3. 创建一个RecyclerView的Adapter,并在其中实现每个CardView图片的加载。例如: ``` public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder> { private Context mContext; private List<String> mImageUrls; public ImageAdapter(Context context, List<String> imageUrls) { mContext = context; mImageUrls = imageUrls; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(mContext).inflate(R.layout.item_image, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { String imageUrl = mImageUrls.get(position); Glide.with(mContext) .load(imageUrl) .into(holder.imageView); } @Override public int getItemCount() { return mImageUrls.size(); } class ViewHolder extends RecyclerView.ViewHolder { ImageView imageView; ViewHolder(View itemView) { super(itemView); imageView = (ImageView) itemView.findViewById(R.id.image_view); } } } ``` 4. 在Activity中,将RecyclerView和Adapter关联起来,并设置LayoutManager。例如: ``` public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view); mRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); List<String> imageUrls = new ArrayList<>(); // 添加图片url到imageUrls中 ImageAdapter adapter = new ImageAdapter(this, imageUrls); mRecyclerView.setAdapter(adapter); } } ``` 通过以上步骤,就可以实现一个简单的Windows 7图片预览窗格效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值