博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
...
阅读量:5818 次
发布时间:2019-06-18

本文共 9205 字,大约阅读时间需要 30 分钟。

hot3.png

常用布局

1.线性布局  LinearLayout

orientation:方向;vertical,垂直;horizontal,水平
gravity:对齐方式,子控件相对于当前控件的对齐方式   
layout_gravity:当前控件相对于父控件的对齐方式
margin:当前控件相对于四周的间距。
padding:当前控件中的子控件相对于当前控件四周的间距。

2.相对布局  RelativeLayout 都是从左上角开始布局,要控制位置需要设置每个控件相对于其他控件的位置。

layout_below:位于哪个控件的下方
layout_above:位于哪个控件的上方
layout_toLeftOf:指定当前控件位于哪个控件的左边
layout_toRightOf:指定当前控件位于哪个控件的右边
layout_alignParentRight:当前控件基于父窗体的对其方式
layout_centerHorizontal:水平居中
layout_centerVertical:垂直居中
layout_centerInParent:位于父窗体的中间

3.帧布局  FrameLayout

帧布局中的子控件都是一层一层向上叠加的。

 

常用控件

设置背景图   android:background="@drawable/zxxsh"  图片放到,图片名字一定要是小写字母、下划线,数量尽量不要加

 

 

文本显示

 

选择框

//设置选择框图位置   生成步骤如下

 

按钮

Button fragment_btn_liJiZhiFu = (Button)findViewById(R.id.fragment_btn_liJiZhiFu);fragment_btn_liJiZhiFu.setOnClickListener(this);

继承它View.OnClickListener

public class Activity1 extends Activity implements View.OnClickListener {    private View fragment2;    private List
vipList;

 

//点击事件@Overridepublic void onClick(View view) {    switch (view.getId())    {                case R.id.fragment_btn_liJiZhiFu://支付            Toast.makeText(getActivity(),"请选择支付方式",Toast.LENGTH_SHORT).show();            break;    }}

 

 

GridView这个是自定义GridView  为啥自定义呢,这个是滑动控件 如同一个布局有Scrollview的话他会冲突,所有要自定义

自定义代码

public class MyGridView extends GridView {    public MyGridView(Context context) {        super(context);    }    public MyGridView(Context context, AttributeSet attrs) {        super(context, attrs);    }    public MyGridView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);        super.onMeasure(widthMeasureSpec, expandSpec);    }}

 

//点击事件    class ItemClick implements AdapterView.OnItemClickListener {        @Override        public void onItemClick(AdapterView
adapterView, View view, int i, long l) { position = i;// vipList.get(i).getGoodsName()+"\n"+String.valueOf(vipList.get(i).getPrice( goodPrice = String.valueOf(vipList.get(i).getPrice()); goodeNome = String.valueOf(vipList.get(i).getGoodsName()); } } class MyAdapter extends BaseAdapter { @Override public int getCount() { if (vipList == null) { return 0; } return vipList.size(); } @Override public Object getItem(int i) { return vipList.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder viewHolder; if (view == null) { //fragment2_img_huiYuanKa viewHolder = new ViewHolder(); view = UIUtils.inflate(R.layout.fragment2_hui_yuan_ka_item); viewHolder.fragment2_tv_vipCordPresent = (TextView) view.findViewById(R.id.fragment2_tv_vipCordPresent); view.setTag(viewHolder); } else { viewHolder = (ViewHolder)view.getTag(); } d = vipList.get(i).getPrice(); String prict = df.format(d); viewHolder.fragment2_tv_vipCordPresent.setText(vipList.get(i).getGoodsName()+"\n"+prict+"元"); return view; } } private class ViewHolder { public TextView fragment2_tv_vipCordPresent; }

 

MyGridView fragment2_mgr_vipCard = (MyGridView)fragment2.findViewById(R.id.fragment2_mgr_vipCard);myAdapter = new MyAdapter();fragment2_mgr_vipCard.setAdapter(myAdapter);fragment2_mgr_vipCard.setOnItemClickListener(new ItemClick());

 

myAdapter.notifyDataSetChanged();//刷新

 

ListView用法基本相同 下面是自定义的

public class MyListView extends ListView {    public MyListView(Context context) {        super(context);    }    public MyListView(Context context, AttributeSet attrs) {        super(context, attrs);    }    public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }//    public MyListView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {//        super(context, attrs, defStyleAttr, defStyleRes);//    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);        super.onMeasure(widthMeasureSpec, expandSpec);    }}

 

如果要跳转别的界面吧他放到按钮方法中

Intent intent = new Intent(getActivity(), LoginActivity.class);startActivity(intent);

 

 

//跳转时如果上个界面不用的话.关闭

finish();

 

A->B 跳转顺传

A

Intent intent = new Intent(this,FinalActivity.class);

//把名字和性别传过去
intent.putExtra("userName",userName);
intent.putExtra("sex",sex);

startActivity(intent);

 

B

//开启Activity的意图对象

Intent intent = getIntent();
//获取携带过来的数据
String name = intent.getStringExtra("userName");

int sex = intent.getIntExtra("sex",0);

 

 

B->A  逆传

   

    //设置意图对象
    Intent intent = new Intent();
    intent.putExtra("smscontent","jjj");
    //返回给主界面

    setResult(20,intent);//20作为区分标识 resultCode

    finish();

在主界面会调用这个方法

//接受界面

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == 20)
    {
        String msg = data.getStringExtra("smscontent");
        System.out.println(msg);
        et_messageText.setText(msg);
    }else if (resultCode == 10)
    {
        et_inpnub.setText(data.getStringExtra("phone"));
    }
    super.onActivityResult(requestCode, resultCode, data);
}

 

 

 

 

 

权限

compile 'com.yanzhenjie:permission:1.1.0'

 

图片轮播

compile 'com.youth.banner:banner:1.4.10'
compile 'com.github.bumptech.glide:glide:3.7.0'

 

 

 

 

//权限

AndPermission.with(this)        .requestCode(100)        .permission(                Manifest.permission.CAMERA,                Manifest.permission.ACCESS_COARSE_LOCATION,                Manifest.permission.ACCESS_FINE_LOCATION,                Manifest.permission.ACCESS_WIFI_STATE,                Manifest.permission.ACCESS_NETWORK_STATE,                Manifest.permission.CHANGE_WIFI_STATE,                Manifest.permission.READ_EXTERNAL_STORAGE,                Manifest.permission.WRITE_EXTERNAL_STORAGE        )        .rationale(rationaleListener)        .callback(listener)        .start();

 

//成功回调private PermissionListener listener = new PermissionListener() {    @Override    public void onSucceed(int requestCode, @NonNull List
grantPermissions) { if (requestCode == 100) { } } //如果用户点击拒绝,以后不在提示后将会调用的 @Override public void onFailed(int requestCode, @NonNull List
deniedPermissions) { if (requestCode == 100) { if (AndPermission.hasAlwaysDeniedPermission(getActivity(), deniedPermissions)) { // 第一种:用AndPermission默认的提示语。 AndPermission.defaultSettingDialog(getActivity()).show(); } } }};//拒绝后会调用private RationaleListener rationaleListener = new RationaleListener() { @Override public void showRequestPermissionRationale(final int requestCode, final Rationale rationale) { com.yanzhenjie.alertdialog.AlertDialog.newBuilder(getActivity()) .setTitle("友好提醒") .setMessage("你已拒绝过定位权限,沒有定位定位权限无法为你推荐附近的妹子,你看着办!") .setPositiveButton("给你权限", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { rationale.resume(); } }) .setNegativeButton("我拒绝", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { rationale.cancel(); } }) .show(); }};

 

 

图片轮播

public class GlideImageLoader extends ImageLoader {    @Override    public void displayImage(Context context, Object path, ImageView imageView) {        //具体方法内容自己去选择,次方法是为了减少banner过多的依赖第三方包,所以将这个权限开放给使用者去选择        Glide.with(context.getApplicationContext())                .load(path)                .crossFade()                .into(imageView);    }

 

 

frgment1_banner = (Banner) fragmentView.findViewById(R.id.frgment1_banner);
ArrayList
bannerImageUrl = new ArrayList
(); for (int i = 0; i < model.getObj().size(); i++) { bannerImageUrl.add(Confing.imageRootUrl+model.getObj().get(i).getAdCode()); } frgment1_banner.setImages(bannerImageUrl) .setDelayTime(3000) .setImageLoader(new GlideImageLoader())// .setOnBannerListener(HomeFragment.this) .setBannerAnimation(Transformer.Default) .updateBannerStyle(BannerConfig.NUM_INDICATOR); frgment1_banner.start();

 

 

//图片轮播如果从文件或internet加载图像

 

 

 

 

 

转载于:https://my.oschina.net/lufeidexin/blog/1634654

你可能感兴趣的文章
监听器(web基础学习笔记二十二)
查看>>
802.11 学习笔记
查看>>
Leetcode-Database-176-Second Highest Salary-Easy(转)
查看>>
Ubuntu12.04LTS安装好后是空白桌面的解决步骤(更新显卡驱动)
查看>>
poj-3696 The Luckiest number
查看>>
[Dynamic Language] Python定时任务框架
查看>>
Furure的简单介绍和使用
查看>>
CSS3 网格布局(grid layout)基础知识 - 隐式网格自己主动布局(grid-auto-rows/grid-auto-columns/grid-auto-flow)...
查看>>
构建Docker Compose服务堆栈
查看>>
最小角回归 LARS算法包的用法以及模型参数的选择(R语言 )
查看>>
CentOS7下zip解压和unzip压缩文件
查看>>
Hadoop生态圈-Kafka常用命令总结
查看>>
如何基于Redis Replication设计并实现Redis-replicator?
查看>>
Linux 环境下 PHP 扩展的编译与安装 以 mysqli 为例
查看>>
openmp在图像处理上面的运用
查看>>
Key Components and Internals of Spring Boot Framework--转
查看>>
基于Bootstrap的jQuery开关按钮插件
查看>>
修改linux文件权限命令:chmod
查看>>
如何删除PHP数组中的元素,并且索引重排(unset,array_splice)?
查看>>
Python数据分析:手写数字识别初步
查看>>