仿百度壁纸client(六)——完结篇之Gallery画廊实现壁纸预览已经项目细节优化


百度壁纸系列

仿百度壁纸client(一)——主框架搭建,自己定义Tab + ViewPager + Fragment

仿百度壁纸client(二)——主页自己定义ViewPager广告定时轮播图

仿百度壁纸client(三)——首页单向,双向事件冲突处理,壁纸列表的实现

仿百度壁纸client(四)——自己定义上拉载入实现精选壁纸墙

仿百度壁纸client(五)——实现搜索动画GestureDetector手势识别,动态更新搜索关键字

仿百度壁纸client(六)——完结篇之Gallery画廊实现壁纸预览已经项目细节优化


我们这里有一个细节还没有实现。我们先看一下官方的效果

这个学名叫做Gallery画廊。我们今天也来实现它。我们在精选的Fragment中给GradView设置点击事件,让他跳转到画廊。实际开发其中是获取当前点击的图片的,这里我们就仅仅能模拟图片了

myGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
startActivity(new Intent(getActivity(), GalleryActivity.class));
}
});

跳转的Activity就是我们今天来实现的,我们先来下个布局

layout_gallery.xml

<?

xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/image_home_background"> <Gallery
android:id="@+id/myGallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" /> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:orientation="vertical"> <LinearLayout
android:layout_width="150dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image_view_button_set_as_wallpaper" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="设置壁纸"
android:textColor="#fff" />
</LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"> <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image_view_button_preview" /> <TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="预览"
android:textColor="#fff" /> </LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image_view_button_download" /> <TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下載"
android:textColor="#fff" /> </LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"> <ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="@drawable/image_view_button_share" /> <TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="分享"
android:textColor="#fff" /> </LinearLayout> </LinearLayout> </LinearLayout> </RelativeLayout>

然后開始实现了。这个不是什么难的技术,仅仅是一个容器。我们还得定义一个Adapter,这里直接放上代码。毕竟就几行代码

package com.lgl.baiduwallpaper;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView; import java.util.ArrayList; /**
* 画廊效果
* Created by lgl on 16/4/9.
*/
public class GalleryActivity extends Activity { //画廊
private Gallery mGallery;
private ArrayList<Integer> srcData = new ArrayList<>(); @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_gallery); init();
} private void init() {
mGallery = (Gallery) findViewById(R.id.myGallery);
initData();
mGallery.setAdapter(new myAdapter(this));
} /**
* 初始化数据
*/
private void initData() {
//这里模拟四张。实际开发中须要自己去获取
srcData.add(R.mipmap.img1);
srcData.add(R.mipmap.img2);
srcData.add(R.mipmap.img3);
srcData.add(R.mipmap.img4);
} private class myAdapter extends BaseAdapter { private Context mContext; public myAdapter(Context mContext) {
this.mContext = mContext;
} @Override
public int getCount() {
return srcData.size();
} @Override
public Object getItem(int position) {
return srcData.get(position);
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView = new ImageView(mContext);
imageView.setBackgroundResource(srcData.get(position));
imageView.setLayoutParams(new Gallery.LayoutParams(Gallery.LayoutParams.MATCH_PARENT, Gallery.LayoutParams.WRAP_CONTENT)); return imageView;
}
}
}

记得在清单文件注冊哦

我们来执行一下

项目细节处理

换上LOGO

这个项目还是得按流畅来一遍。所以,引导页少不了的

IndexActivity

package com.lgl.baiduwallpaper;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle; /**
* Created by lgl on 16/4/9.
*/
public class IndexActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_index); new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);
startActivity(new Intent(IndexActivity.this, MainActivity.class));
finish();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}

相应的布局

activity_index.xml

<?xml version="1.0" encoding="utf-8"?

>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/welcome_bg"> <TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:text="百度壁纸"
android:textSize="50dp" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_title"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:text="每天换壁纸,天天好心情" /> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:src="@drawable/welcome_bottom" /> </RelativeLayout>

执行结果

接下来。我们把title完好一下,首先是精选

<RelativeLayout
android:id="@+id/rl_title"
android:layout_width="match_parent"
android:layout_height="50dp"
android:alpha="0.8"
android:background="#000"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="精选"
android:textColor="#fff"
android:textSize="16sp" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:text="刷新"
android:textColor="#fff"
android:textSize="16sp" /> </RelativeLayout>

然後就是搜索了

<RelativeLayout
android:id="@+id/rl_title"
android:layout_width="match_parent"
android:layout_height="50dp"
android:alpha="0.8"
android:background="#000"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="搜索"
android:textColor="#fff"
android:textSize="16sp" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:text="确定"
android:textColor="#fff"
android:textSize="16sp" /> </RelativeLayout> <RelativeLayout
android:id="@+id/rl_search"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_below="@+id/rl_title"
android:layout_margin="10dp"> <EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/image_search_button" /> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:src="@drawable/image_search_clear_button_selected" /> </RelativeLayout>

接著是本地,本地我们不实现它的功能,就写个布局吧

<?

xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <RelativeLayout
android:id="@+id/rl_title"
android:layout_width="match_parent"
android:layout_height="50dp"
android:alpha="0.8"
android:background="#000"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="本地"
android:textColor="#fff"
android:textSize="16sp" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:text="删除"
android:textColor="#fff"
android:textSize="16sp" /> </RelativeLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical"> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image_manage_no_wallpaper_logo" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="你本地还没有壁纸,快来下载些吧! " /> <Button
android:background="@drawable/button_pressed"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_marginTop="30dp"
android:text="精选"
android:textColor="#fff" /> </LinearLayout>
</LinearLayout>

最後就是設置了

<?xml version="1.0" encoding="utf-8"?

>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:orientation="vertical"> <RelativeLayout
android:id="@+id/rl_title"
android:layout_width="match_parent"
android:layout_height="50dp"
android:alpha="0.8"
android:background="#000"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="设置"
android:textColor="#fff"
android:textSize="16sp" /> <TextView
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:text="确定"
android:textColor="#fff"
android:textSize="16sp" /> </RelativeLayout> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/image_more_subitems_bottom"
android:gravity="center_vertical"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="自己主动更换壁纸" /> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:src="@drawable/image_list_open_item" /> </RelativeLayout> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/image_more_subitems_bottom"
android:gravity="center_vertical"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="一鍵更换壁纸" /> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:src="@drawable/image_list_open_item" /> </RelativeLayout> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/image_more_subitems_bottom"
android:gravity="center_vertical"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="图片浏览之类" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:text="自己主动" /> </RelativeLayout> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/image_more_subitems_bottom"
android:gravity="center_vertical"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="清除缓存" /> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:src="@drawable/image_list_open_item"
android:visibility="invisible" /> </RelativeLayout> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/image_more_subitems_bottom"
android:gravity="center_vertical"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="检查更新" /> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:src="@drawable/image_list_open_item"
android:visibility="invisible" /> </RelativeLayout> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="30dp"
android:background="@drawable/image_more_subitems_bottom"
android:gravity="center_vertical"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="帮助手冊" /> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:src="@drawable/image_list_open_item" /> </RelativeLayout> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/image_more_subitems_bottom"
android:gravity="center_vertical"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="意见反馈" /> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:src="@drawable/image_list_open_item" /> </RelativeLayout> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/image_more_subitems_bottom"
android:gravity="center_vertical"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="关于我们" /> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:src="@drawable/image_list_open_item" /> </RelativeLayout> </LinearLayout>

我们完整的预览一遍

感兴趣的能够下载Demo玩玩

Demo下载:http://download.csdn.net/detail/qq_26787115/9485945

仿百度壁纸client(六)——完结篇之Gallery画廊实现壁纸预览已经项目细节优化的更多相关文章

  1. 仿百度壁纸客户端(六)——完结篇之Gallery画廊实现壁纸预览已经项目细节优化

    仿百度壁纸客户端(六)--完结篇之Gallery画廊实现壁纸预览已经项目细节优化 百度壁纸系列 仿百度壁纸客户端(一)--主框架搭建,自定义Tab + ViewPager + Fragment 仿百度 ...

  2. 对百度WebUploader的二次封装,精简前端代码之图片预览上传(两句代码搞定上传)

    前言 本篇文章上一篇: 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传) 此篇是在上面的基础上扩展出来专门上传图片的控件封装. 首先我们看看效果: 正文 使用方式同 ...

  3. 仿百度壁纸client(五)——实现搜索动画GestureDetector手势识别,动态更新搜索keyword

    仿百度壁纸client(五)--实现搜索动画GestureDetector手势识别,动态更新搜索关键字 百度壁纸系列 仿百度壁纸client(一)--主框架搭建,自己定义Tab + ViewPager ...

  4. 仿百度壁纸客户端(五)——实现搜索动画GestureDetector手势识别,动态更新搜索关键字

    仿百度壁纸客户端(五)--实现搜索动画GestureDetector手势识别,动态更新搜索关键字 百度壁纸系列 仿百度壁纸客户端(一)--主框架搭建,自定义Tab + ViewPager + Frag ...

  5. 仿百度壁纸客户端(二)——主页自定义ViewPager广告定时轮播图

    仿百度壁纸客户端(二)--主页自定义ViewPager广告定时轮播图 百度壁纸系列 仿百度壁纸客户端(一)--主框架搭建,自定义Tab + ViewPager + Fragment 仿百度壁纸客户端( ...

  6. 仿百度壁纸客户端(一)——主框架搭建,自定义Tab+ViewPager+Fragment

    仿百度壁纸客户端(一)--主框架搭建,自定义Tab+ViewPager+Fragment 百度壁纸系列 仿百度壁纸客户端(一)--主框架搭建,自定义Tab + ViewPager + Fragment ...

  7. Canvas 仿百度贴吧客户端 loading 小球

    前言 几天前在简书上看到在一篇文章<Android仿百度贴吧客户端Loading小球>,看了一下作者,他写了两个好玩的 demo,效果图如下: 今天趁着周末有空,用 H5 的 Canvas ...

  8. WPF仿百度Echarts人口迁移图

    GitHub地址:https://github.com/ptddqr/wpf-echarts-map/tree/master 关于大名鼎鼎的百度Echarts我就不多说了 不了解的朋友直接看官方的例子 ...

  9. ArcGIS JS 学习笔记2 实现仿百度的拖拽画圆

    一.前言 吐槽一下,百度在国内除了百度地图是良心产品外,其他的真的不敢恭维.在上一篇笔记里,我已经实现了自定义的地图测量模块.在百度地图里面(其他地图)都有一个周边搜索的功能,拖拽画一个圆,然后以圆半 ...

随机推荐

  1. JavaEE中Filter实现用户登录拦截

    实现思路是编写过滤器,如果用户登录之后session中会存一个user.如果未登录就为null,就可以通过过滤器将用户重定向到登陆页面,让用户进行登陆,当然过滤器得判断用户访问的如果是登陆请求需要放行 ...

  2. 灰姑娘的水晶鞋(NOIP模拟赛Round 7)

    [问题描述] 传说中的水晶鞋有两种颜色:左边的水晶鞋是红色,右边的是蓝色,据说穿上它们会有神奇的力量. 灰姑娘要找到她所有的n双水晶鞋,它们散落在一条数轴的正半轴上,坐标各不相同,每双水晶鞋还有一个权 ...

  3. shell编程学习笔记【原创】

    本文为本人学习笔记,如有转载请注明出处,谢谢 一.Bourne Shell 有如下四种变量: 用户自定义变量 位置变量,即命令行参数 预定义变量 环境变量 二.位置变量 $ 与键入的命令行一样,包含脚 ...

  4. mtk GPIO口

    http://blog.csdn.net/mcgrady_tracy/article/details/39320691 mt6582多达168个GPIO口,当然这些GPIO口是复用的,注意lk和Lin ...

  5. C++ 播放音频流(PCM裸流)--改善

    直接上代码,如果有需要可以直接建一个win32控制台程序然后将代码拷过去改个文件名就可以用了(注意将声道和频率与你自己的文件对应).当然我自己也用VS2008写了个例子上传了,如果有需要下载地址如下: ...

  6. js常用函数总结

    字符串函数 indexOf 返回字符串中一个子串第一处出现的索引(从左到右搜索).如果没有匹配项,返回 -1 . var index1 = a.indexOf("l"); //in ...

  7. windows 修改xhsell安全加密配置

    由于xhsell旧版的与新版的有差别,导致新版的不能用旧版的xsh文件 1.将xshell升级到最新版本2.安装sed与grep到C:\Program Files (x86)\GnuWin323.将b ...

  8. python tips;matplotlib 显示中文

    import numpy as npimport matplotlib.pyplot as pltimport matplotlib as mpl mpl.rcParams['axes.unicode ...

  9. (14)oracle数据字典

    http://czmmiao.iteye.com/blog/1258462 数据字典解释 1.user_tables 查询用户所拥有的所有表 select table_name from user_t ...

  10. 2018 CCPC 女生专场

    可能是史上最弱的验题人—— Problem A (小)模拟. #include <bits/stdc++.h> using namespace std; int T; int main() ...