Android Studio 第三章汇总

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”

android: orientation=”vertical”

//指定控件排列方向为竖直方向,horizontal为水平方向,                

 //如果为水平方向,控件的宽度不能是match_parent,这样单独一  //个控件会把整个水平方向占满。垂直方向同理,高度不能。

//如图看例子:

 

android:layout_width=”match_parent”//可以使用比例指定控件大小

//比如:

 

//使得这两个控件以1:1的比例平分屏幕宽度,即一个一半的宽度

 

//左上角对齐

 

//右上角对齐

 

//居中对齐

 

android:layout_height=”match_parent”>

<TxetView//界面显示控件

android:id=”@+id/text_view”//定义唯一标识符

android:layout_width=”match_parent”//宽度跟随父布局(就是手机屏幕宽度)

android:layout_height=”warp_content”//高度刚好够显示内容

android:gravity=”center”//显示内容居中对齐,其他还有top,bottom,left,right

//android:layout_gravity=”center”是控件在界面的布局中的对齐方式为居中

android:textSize=””24sp”//改变文字大小,sp是大小单位

android:textColor=”#00ff00”//改变文字颜色

android:text=”This is TextView” />//指定显示内容

<Button//按钮交互控件

android:=”@+id/button”//定义唯一标识符

android:layout_width=”match_parent”//宽度跟随父布局(就是手机屏幕宽度)

android:layout_height=”warp_content”//高度刚好够显示内容

android:Text=”Button”

android:textAllCaps=”false” /> //关闭英文字母自动大写切换,不关text显示”BUTTON”

<EditText//输入信息与编辑交互插件

android:=”@+id/edit_text”//定义唯一标识符

android:layout_width=”match_parent”//宽度跟随父布局(就是手机屏幕宽度)

android:layout_height=”warp_content”//高度刚好够显示内容

android:hint=”Type something here”//在输入框输入信息前的提示性语句

android:maxLines=”2”//使编辑框最多显示两行,虽然高度布局为刚好显示内容,但是如   //果输入过多会使界面不好看,所以使用这个限制最大行数。当输   //入超过两行就会往上滚动,而不会拉长

<ImageView//图片控件,图片放在res目录下新建一个“drawable-xhdpi”。

android:=”@+id/image_view”//定义唯一标识符

android:layout_width=”warp_content”//宽度刚好够显示内容

android:layout_height=”warp_content”//高度刚好够显示内容

android:src=”@drawable/img_1”/>//假设“drawable-xhdpi”已经有一张图片img_1

<ProgressBar//进度条控件(默认圆形)

android:=”@+id/progress_bar”//定义唯一标识符

android:layout_width=”match_parent”//宽度跟随父布局(就是手机屏幕宽度)

android:layout_height=”warp_content”//高度刚好够显示内容

style=”?android:attr/progressBarStyleHorizontal”//指定为水平进度条

android:max=”100”/>//进度条最大值

<android.support.v7.widget.RecyclerView//ListView更好的滑动显示信息控件,这个属于自定//义控件,所以在使用前必须打开app/build.gradle文件,在dependencies闭包中添加如下//内容:

// denpendencies{

compile fileTree(dir:’libs’,include:[‘*.jar*])

compile ‘com.android.support:appcompat-v7:24.2.1’

compile ‘com.android.support:recyclerview-v7:24.2.1’

testCompile ‘junit:junit:4.12’

// }

// 然后点击Sync Now同步

android:=”@+id/recycler_view”//定义唯一标识符

android:layout_width=”match_parent”//宽度跟随父布局(就是手机屏幕宽度)

android:layout_height=”match_parent”//高度跟随父布局(就是手机屏幕高度)

</LinearLayout>

具体使用代码:

方法一:使用匿名类在MainActivity中为Button添加监听器

Public class MainActivity extends AppCompatActivity

{

@Override

Protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button button = (Button) findViewById(R.id.button);

button.setOnClickListener(

new View.OnClickListener()

{

@Override

public void onClick(View v)//每当按下按钮则会执行

{

//在此处定义事件;

}

});

}

}

方法二:实现接口的方式实现监听器:

Public class MainActivity extends AppCompatActivity implements View.OnClickListner

{

@Override

Protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button button = (Button) findViewById(R.id.button);

button.setOnClickListener(this);

}

 

@Override

public void onClick(View v)//每当按下按钮则会执行

{

switch(v.getID())

{

case R.id.button:

//在此处定义事件;

break;

default:

break;

}

}

}

使用button来获取EditText的内容

Public class MainActivity extends AppCompatActivity implements View.OnClickListner

{

private EditText editText;

 

@Override

Protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button button = (Button) findViewById(R.id.button);

editText=(EditText) findViewById(R.id.exit_text);

button.setOnClickListener(this);

}

 

@Override

public void onClick(View v)//每当按下按钮则会执行

{

switch(v.getID())

{

case R.id.button:

String inputText = editText.getText().toString();

Toast.makeText(MainActivity.this,inputText,Toast.LENGTH_SHORT).show() ;

break;

default:

break;

}

}

}

使用Button更改显示的图片

 

Public class MainActivity extends AppCompatActivity implements View.OnClickListner

{

private EditText editText;

private ImageView imageView;

 

@Override

Protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button button = (Button) findViewById(R.id.button);

editText=(EditText) findViewById(R.id.exit_text);

imageView=(ImageView) findviewById(R.id.image_view);

button.setOnClickListener(this);

}

 

@Override

public void onClick(View v)//每当按下按钮则会执行

{

switch(v.getID())

{

case R.id.button:

imageView.setImageResource(R.drawable.img_2);//按下按钮则显示更 //改为img_2

break;

default:

break;

}

}

}

使用按钮是显示进度条加载

Public class MainActivity extends AppCompatActivity implements View.OnClickListner

{

private EditText editText;

private ImageView imageView;

private ProgressBar progressBar;

 

@Override

Protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button button = (Button) findViewById(R.id.button);

editText=(EditText) findViewById(R.id.exit_text);

imageView=(ImageView) findviewById(R.id.image_view);

progressBar=(ProgressBar) findviewById(R.id.progress_bar);

button.setOnClickListener(this);

}

 

@Override

public void onClick(View v)//每当按下按钮则会执行

{

switch(v.getID())

{

case R.id.button:

if(progressBar.getVisibility()==View.GONE)

{

progressBar.setVisibility(View.VISIBLE);//如果进度条不可见,则点 //击按钮后进度条可见。

}

else

{

progressBar.setVisibility(View.GONE);//反之

default:

break;

}

}

}

动态更改进度条进度:

Public class MainActivity extends AppCompatActivity implements View.OnClickListner

{

private EditText editText;

private ImageView imageView;

private ProgressBar progressBar;

 

@Override

Protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button button = (Button) findViewById(R.id.button);

editText=(EditText) findViewById(R.id.exit_text);

imageView=(ImageView) findviewById(R.id.image_view);

progressBar=(ProgressBar) findviewById(R.id.progress_bar);

button.setOnClickListener(this);

}

 

@Override

public void onClick(View v)//每当按下按钮则会执行

{

switch(v.getID())

{

case R.id.button:

int progress = progressBar.getProgress();//每点击一次按钮进度加10

progress=progress+10;

progressBar.setProgress(progress);

default:

break;

}

}

}

 

AlertDialog弹出一个置顶对话框(比如在你删除重要的东西的时候弹出对话框提醒) 的用法:

Public class MainActivity extends AppCompatActivity implements View.OnClickListner

{

private EditText editText;

private ImageView imageView;

private ProgressBar progressBar;

 

@Override

Protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button button = (Button) findViewById(R.id.button);

editText=(EditText) findViewById(R.id.exit_text);

imageView=(ImageView) findviewById(R.id.image_view);

progressBar=(ProgressBar) findviewById(R.id.progress_bar);

button.setOnClickListener(this);

}

 

@Override

public void onClick(View v)//每当按下按钮则会执行

{

switch(v.getID())

{

case R.id.button:

AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this); //创建实例

dialog.setTitle(“This is Dialog”);

dialog.setMessage(“Something important.”);

dialog.setCancelable(false);

dialog.setPositiveButton(“OK”,     //为对话框设置确定按钮事件

new DialogInterface.OnClickListener()

{

@Override

 

public void onClick(DialogInterface dialog,int which)

{

}

});

dialog.setNegativeButton(“Cencel”,//为对话框设置取消按钮事件

new DialogInterface.OnClickListener()

{

 

@Override

 

public void onClick(DialogInterface dialog,int which)

{

});

dialog.show();//显示对话框

 

default:

break;

}

}

}

 

 

}

}

recyclerView 适配器代码:

Public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder>

{

private List<Fruit> mFruitList;

 

static class ViewHolder extends RecyclerView.ViewHolder//定义一个内部类

{

ImageView fruitImage;

TextView fruitName;

public ViewHolder(View view)

{

super(view);

fruitImage=(ImageView) view.findViewById(R.id.fruit_image);

fruitName=(TextView) view.findViewById(R.id.fruit_name);

}

}

public FruitAdapter(List<Fruit> FuritList)

{

mFruitList=fruitList;

}

@Override

public ViewHolder onCreateViewHolder(ViewGroup parent,int viewType)

//用于创建ViewHoldrer实例

{

View view=LayoutInflater.from(parent.getContext()).

inflat(R.layout.fruit_item,parent,false);

ViewHolder holder = new ViewHolder(view);

return holder;

}

@Override

public void onBindViewHolder(ViewHolder holder,int position)

//RecyclerView子项数据赋值,每个子项滚动到屏幕时执行

{

Fruit fruit=mFruitList.get(position);

holder.fruitImage.setImageResource(fruit.getImageId());

holder.fruitName.setText(fruit.getName());

}

@Override

public int getItemCount()//返回总的子项数目

{

return mFruitList.size();

}

适配器配好后使用RecyclerView

public class MainActivity extends AppCompatActivity

{

private List<Fruit> FruitList=new ArrayList<>();//这里事前定义了一个水果类

//

//

//并且自定义了控件一个显示图片一个 //显示水果名。自定义控件参考3.4.2

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initFruits();//初始化水果数据

RecyclerView recyclerView =(RecyclerView) findViewById(R.id.recycler.view);

LinearLayoutManager layoutManager = new LinearLayoutManager(this);//线   //性布局

recyclerView.setlayoutManager(layoutManager);

FruitAdapter adapter= new FruitAdapter(fruitList);

recyclerView.setAdapter(adapter);//完成适配器配置

}

 

private void initFruits()//初始化水果数据

{

for(int i=0;i<2;i++)//这里循环两次是为了体现出滑动功能

{

Fruit apple=new Fruit(“Apple”,R.drawable.apple_pic);

FruitList.add(apple);

Fruit banana=new Fruit(“Banana”,R.drawable.banana_pic);

FruitList.add(banana);

Fruit orange=new Fruit(“Orange”,R.drawable.orange_pic);

FruitList.add(orange);

Fruit watermelon=new Fruit(“Watermelon”,R.drawable.

watermelon_pic);

FruitList.add(watermelon);

Fruit pear=new Fruit(“Pear”,R.drawable.pear_pic);

FruitList.add(pear);//后面的全部类似,全是水果名

Fruit =new Fruit(“”,R.drawable._pic);

FruitList.add();

Fruit grape=new Fruit(“Grape”,R.drawable.grape_pic);

FruitList.add(grape);

Fruit =new Fruit(“”,R.drawable._pic);

FruitList.add();

Fruit =new Fruit(“”,R.drawable._pic);

FruitList.add();

Fruit =new Fruit(“”,R.drawable._pic);

FruitList.add();

}

}

{

 

 

实现瀑布流布局:

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”

android: orientation=”vertical”

android:layout_width=”match_parent”

android:layout_height=”warp_content”

android:layout_margin=”5dp”>//两子项之间的间距

<ImageView

android: id=”@+id/fruit_image”

android:layout_width=”warp_content”

android:layout_height=”warp_content”

android:layout_gravity=”center_horizontal”/>//图片水平方向居中对齐

<TextView

android: id=”@+id/fruit_name”

android:layout_width=”warp_content”

android:layout_height=”warp_content”

android:layout_gravity=”left”

android:layout_margintop=”10dp”/>

代码:

public class MainActivity extends AppCompatActivity

{

private List<Fruit> FruitList=new ArrayList<>();//这里事前定义了一个水果类

//

//

//并且自定义了控件一个显示图片一个 //显示水果名。自定义控件参考3.4.2

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initFruits();//初始化水果数据

RecyclerView recyclerView =(RecyclerView) findViewById(R.id.recycler.view);

 

LinearLayoutManager layoutManager = new LinearLayoutManager(this);//线    //性布局

StaggeredGridLayoutManager layoutManager=new

StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);

//这里这个3是指分为3列,另一个参数指纵向排列

recyclerView.setlayoutManager(layoutManager);

FruitAdapter adapter= new FruitAdapter(fruitList);

recyclerView.setAdapter(adapter);//完成适配器配置

}

 

private void initFruits()//初始化水果数据

{

for(int i=0;i<2;i++)//这里循环两次是为了体现出滑动功能

{

Fruit apple=new Fruit(getRandomLengthName(“Apple”),

,R.drawable.apple_pic);

FruitList.add(apple);

Fruit banana=new Fruit(getRandomLengthName(“Banana”)

,R.drawable.banana_pic);

FruitList.add(banana);

Fruit orange=new Fruit(getRandomLengthName(“Orange”),

R.drawable.orange_pic);

FruitList.add(orange);

Fruit watermelon=new Fruit(getRandomLengthName(“Watermelon”),

R.drawable.watermelon_pic);

FruitList.add(watermelon);

Fruit pear=new Fruit(getRandomLengthName(“Pear”),

R.drawable.pear_pic);

FruitList.add(pear);//后面的全部类似,全是水果名,就不写了

}

}

private String getRandomLengthName(String name)//每个水果的名字长度随机

{

Random random = new Random();

int length=random.nextInt(20)+1;

StringBuilder builder=new StringBuilder();

for(int i=0;i<length;i++)

{

builder.append(name);

}

return builder.toString();

}

{

 

RecyclerView的点击事件(比如点击上图的某个水果显示具体内容)

public class MainActivity extends AppCompatActivity

{

private List<Fruit> FruitList=new ArrayList<>();

static class ViewHolder extends RecyclerView.ViewHolder

{

View fruitView,

ImageView fruitImage;

TextView fruitName;

public ViewHolder(View view)

{

super(view) ;

fruitView= view,

fruitImage= (ImageView) view.findViewById(R.id.fruit_image);

fruitName= (TextView) view,findViewById(R.id.fruit_name);

}

}

 

pubLic FruitAdapter(List<Fruit> fruitList)

{

mFruitList=fruitList;

}

 

@0verride

public ViewHoLder onCreateViewHolder(ViewGroup parent, int viewType)  

{

View view= LayoutInflLater.from(parent.getContext()).inflate(R.1ayout.

fruit_item, parent, false);

final ViewHolder holder= new ViewHoLder(view);

holder.fruitView.setOnClickListener(

new View.0nClickListener()  

{

@0verride

pubtic void onC1.ick(View v)  

{

int position= holder.getAdapterPosition(),//获取实例

Fruit fruit= mFruitList.get(position);

Toast.makeText(v.getContext() , "you clicked view"+ fruit.getName().

Toast. LENCTH_SHORT) . show( ) ;

}

}):

hoLder.fruitImage.setOnCLickListener(

new View.0nClickListener()  

{

@0verride

public void onClick(View v)

{

int position = holder.getAdapterPosition();//获取实例

Fruit fruit = mFruitList.get(position);

Toast.makeText(v.getContext() ,you clicked image+ fruit.getName(),

Toast.LENGTH_SHORT) .show();                                                       

}

});

return holder;

}

...//此处为上面private void initFruits()函数,不写了

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值