项目拉手团购开发记录

发布时间:2020-07-24 08:29:24 作者:JensenL618
来源:网络 阅读:636

项目:拉手团购

项目:拉手团购

10.27

构建框架

下载数据

Gson gson = new Gson();
Type type = new TypeToken<ArrayList<数据类型>>(){}.getType();
ArrayList<数据类型>list = gson.fromjson(json,type);

其中Type为Java.lang.reflect.type

TypeToken为Gson.reflect.typeToken

如何设置图片大小

根据屏幕大小的几分之几来设置

10.29

ListView中刷新命令只与ListView的getView有关,与HeadView都没有关系

自定义GridView以适应在ListView嵌套中能够滑动,适用于数量不多的情况,因为优化全部失效

解决不同分辨率显示效果不同,通过屏幕尺寸来设置布局的大小,代码:

// 得到屏幕参数
WindowManager systemService = (WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE);
mDisplay = systemService.getDefaultDisplay();

Gson解析

11.05

标签栏的切换动画

ObjectAnimator.ofFloat(mTabIndiactor, "translationX", 0).setDuration(500).start();

注意,这里只设置了到哪里去而没有从哪里开始

项目拉手团购开发记录

点击进入商品详情(ScrollView的使用)

通过webView显示超文本 

给文本添加划掉效果

textview.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
项目拉手团购开发记录

代码控制ScrollView的滚动

scrollview.scrollTo(0,0);
scrollview.smoothScrollTo(0,0);

indeterminateOnly属性

android:indeterminateOnly这个属性如果设置为true,表示的是这个ProgressBar是模糊的,不明确的,也就是说,当前它并没有体现出具体的进度,只是一直循环往复

11.11

自定义RatingBar

添加点击拨号功能

控件悬停功能

package com.jensen.quiet;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;

public class MyScrollView extends ScrollView {

	private OnScrollListener listener;

	public interface OnScrollListener {
		void onScroll(int height);

	}

	public void setOnScrollListener(OnScrollListener listener) {
		this.listener = listener;
	}

	public MyScrollView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub

	}

	@Override
	protected void onScrollChanged(int l, int t, int oldl, int oldt) {
		listener.onScroll(t);
		super.onScrollChanged(l, t, oldl, oldt);

	}

}

点击查看详情图片

城市列表以及城市定位

  1. 将所有数据按照字母排序

  2. 侧边字母索引

11.16

在xml中设置无ActionBar模式

  1. 在values文件下得styles文件中添加如下代码:

<style name="NoBar" parent="android:Theme.Light.NoTitleBar"></style>
  1. 在values-v14文件夹下的styles中添加如下代码:

<style name="NoBar" parent="android:Theme.Holo.Light.NoActionBar"></style>
  1. 在清单文件的application标签下添加:

android:theme="@style/NoBar"

dp,sp,px的关系

dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。

dp也就是dip,这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为160,这时dp和sp和px是一 样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度 设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动 将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。

px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。

pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;

sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

在GridView中显示网格的一种方法

  1. 设置GridView背景色,设置水平间方向间隔属性值android:horizontalSpacing和竖直方向间隔属性值android:verticalSpacing

  2. 设置GridView子项背景色,要求 子项背景色跟GridView背景色不一致。

代码中设置TextView中的图片的方法

Drawable drawable= getResources().getDrawable(R.drawable.drawable);
// 这一步必须要做,否则不会显示.
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
myTextview.setCompoundDrawables(drawable,null,null,null);

myTextview.setCompoundDrawablesWithIntrinsicBounds (Drawable left,Drawable top, Drawable right, Drawable bottom)

完善界面细节

耗时工程,以下省略一千字

自定义CheckBox的背景

使用xml属性:button

使用Bmob开放接口

ButterKnife的使用

查看GitHub上的源码,知道了怎么使用CheckBox的监听

@OnCheckedChanged(R.id.simple_activity_checkbox)
    void onCheckedChanged(CompoundButton button, boolean checked) {
        Toast.makeText(this, "CheckBox Changed! " + checked, Toast.LENGTH_SHORT).show();
    }

给EditText添加监听

addTextChangedListener(TextWatcher watcher)方法对EditText实现监

完成全部分类界面

完成我的拉手界面绘制

11.20

给自定义控件添加xml属性

  1. 在自定义控件中使用自定义属性:app:contentSize=“10dp”

  1. 在布局中声明新的命名空间:xmlns即xml name space。拷贝android命名控件,前面的Android改为app(可变),后面/android改为-auto。 xmlns:app="http://schemas.android.com/apk/res-auto"

如何定义自定义控件的属性
  1. 拷贝ApiDemos中的attires.xml文件,保留LabelView属性,删除其他,并按需求修改命名。

  1. 在类文件中的两个参数的构造方法中读取控件的属性,代码如下

  1. 参考ApiDemosresvaluesattrs.xml。步骤:

public MySideBar(Context context, AttributeSet attrs) { super(context, attrs);
// 添加属性
//R.styleable.MySideBar就是刚刚在attrs.xml中定义的属性
	TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attrs, R.styleable.MySideBar);	
// 读具体的某个属性
	dimen = obtainStyledAttributes.getDimension(R.styleable.MySideBar_contentSize, 20);		
//释放内存
	obtainStyledAttributes.recycle();
 }

ActiveAndroid保存一对多的数据类型

在location界面中添加城市搜索功能

思路:在location中添加一个ListView用于显示搜索结果,定义一个容器储存搜索匹配拼音的结果,为EditText添加输入监听

  1. 修改布局,使用FrameLayout

  2. 关键代码:

mSerach.addTextChangedListener(new TextWatcher() {

			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {
				// 汉字的话要使用拼音库
				String key = s.toString().toLowerCase();
				mSerachCity.clear();
				serachAdapter.notifyDataSetChanged();
				if ("".equals(key)) {
					mSearchListView.setVisibility(View.GONE);
				} else {
					mSearchListView.setVisibility(View.VISIBLE);
					for (int i = 0; i < mAllcity.size(); i++) {
						Allcity city = mAllcity.get(i);
						if (city.getPinyin().toLowerCase().startsWith(key)) {
							mSerachCity.add(city);
							serachAdapter.notifyDataSetChanged();
						}
					}
				}
			}

11.21

自定义头像

升级ADT和SDK

11.22

分享到新浪微博

新浪微博授权成功时会得到一个Token

11.24

完成登录功能

完成定位界面的点击事件

显示密码

mInputPwd.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);//可见
mInputPwdConfirm.setInputType(InputType.TYPE_CLASS_TEXT
					| InputType.TYPE_TEXT_VARIATION_PASSWORD);//隐藏

11.25

收藏界面

自定义RadioButton

关键属性button,可以设成想要的按钮样式,设成@null的时候就看不到选框了

推荐阅读:
  1. IOS8开发之:基于Swift实战UI从入门到精通(5大项目、深入解析拉手团购项目)
  2. Android仿拉手网团购App产品详情界面效果

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

团购软件 团购

上一篇:php-fpm优化方法 pm.min_spare_servers、pm.max_spare_servers 的真实意义

下一篇:让你的iphone鹤立鸡群

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》