android studio常用控件

1.Button设置不同的样式

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!--android:drawable="@drawable/ic_launcher"-->
    <item android:state_pressed="true" >


        <shape>

              <solid android:color="#ff1234"></solid>
              <corners android:topLeftRadius="5dp"
                android:topRightRadius="5dp"
                android:bottomRightRadius="5dp"
                android:bottomLeftRadius="5dp"
                />

        </shape>


    </item>
    <item android:state_focused="true"
        android:drawable="@drawable/ic_launcher" >


        <shape>

            <solid android:color="#ffaeff5d"></solid>
            <corners android:topLeftRadius="5dp"
                android:topRightRadius="5dp"
                android:bottomRightRadius="5dp"
                android:bottomLeftRadius="5dp"
                />

        </shape>

        </item>
    <item>
        <shape>

            <solid android:color="#ffffb757"></solid>
            <corners android:topLeftRadius="5dp"
                android:topRightRadius="5dp"
                android:bottomRightRadius="5dp"
                android:bottomLeftRadius="5dp"
                />

        </shape>


    </item>




</selector>

 如果是加载图片,item代码更改

 <item android:state_pressed="true" android:drawable="@drawable/ic_launcher">

2.EditText  xml: android:hint="type something here"提示语句  获取text:oast.makeText(this,inputText,Toast.LENGTH_SHORT).show();如果edittext被键盘挡住,需要在androidmanifest中加一句:android:windowSoftInputMode="adjustPan|stateHidden"

<activity
            android:name="******"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar">
android:windowSoftInputMode="adjustPan|stateHidden" </activity>

 editText显示多行

textMultiLine显示多行  minLines最小行数  gravity="left|top"光标置顶
<EditText
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_margin="10dp"
                    android:background="null"
                    android:inputType="textMultiLine"
                    android:minLines="6"
                    android:gravity="left|top"
                    android:hint="变更事项"/>

3.ImageView:xml需要:android:src="@drawable/ic_launcher"   代码:imgView.setImageResource(R.drawable.ic_launcher);

4.ProgressBar 加载进度提示,就是进度条

<ProgressBar
        android:id="@+id/progressBar1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"

        />

progressBar.setVisibility(View.GONE);

5.TextView:跑马灯效果

android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:singleLine="true"
android:marqueeRepeatLimit="marquee_forever"

如果有文本框焦点将会没有,跑马灯效果就会停止,所以需要增加一句

<requestFocus/>

5.AlertDialog,样式很多,写一个 

dialog.setPositiveButton方法是确定按钮的点击事件
dialog.setNegativeButton取消按钮的点击事件

dialog.setCancelable(false);

dialog弹出后会点击屏幕或物理返回键,dialog不消失

 

dialog.setCanceledOnTouchOutside(false);

dialog弹出后会点击屏幕,dialog不消失;点击物理返回键dialog消失

 AlertDialog.Builder dialog = new AlertDialog.Builder(main.this);
                dialog.setTitle("this is a dialog");
                dialog.setMessage("something important");
                dialog.setCancelable(false);
                dialog.setPositiveButton("ok",new DialogInterface.OnClickListener(){
                    @Override
                    public void onClick(DialogInterface dialog, int which){

                    }
                });

                dialog.setNegativeButton("cancel",new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which){

                    }
                });
                dialog.show();

使用alertview创建一个简单的选择列表

第一步:在xml中创建一个Button 和一个TextView

第二步:创建选择数组的数据源

private String []fruits = new String[]{"苹果","香蕉","橘子","凤梨","芒果"};

 第三步:展示

 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

                builder.setTitle("请选择你喜欢吃的水果");
                builder.setItems(fruits,new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        textView.setText(fruits[which]);
                    }
                });


                builder.show();

6.ProgressDialog

ProgressDialog progressDialog = new ProgressDialog(main.this);
                progressDialog.setTitle("this is a progressDialog");
                progressDialog.setMessage("load...");
                progressDialog.setCancelable(true);
                progressDialog.show();;

停止显示progressDialog.dismiss();

7.ImageView加载网络图片

package com.android.antking.imageview;  
  
import java.io.InputStream;  
import java.net.HttpURLConnection;  
import java.net.MalformedURLException;  
import java.net.URL;  
  
import android.app.Activity;  
import android.graphics.Bitmap;  
import android.graphics.BitmapFactory;  
import android.os.Bundle;  
import android.util.Log;  
import android.view.View;  
import android.widget.ImageView;  
  
public class MainActivity extends Activity {  
    //定义一个图片显示控件  
    private ImageView imageView;  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        //图片资源  
        String url = "http://s16.sinaimg.cn/orignal/89429f6dhb99b4903ebcf&690";  
        //得到可用的图片  
        Bitmap bitmap = getHttpBitmap(url);  
        imageView = (ImageView)this.findViewById(R.id.imageViewId);  
        //显示  
        imageView.setImageBitmap(bitmap);  
         
    }  
    /** 
     * 获取网落图片资源  
     * @param url 
     * @return 
     */  
    public static Bitmap getHttpBitmap(String url){  
        URL myFileURL;  
        Bitmap bitmap=null;  
        try{  
            myFileURL = new URL(url);  
            //获得连接  
            HttpURLConnection conn=(HttpURLConnection)myFileURL.openConnection();  
            //设置超时时间为6000毫秒,conn.setConnectionTiem(0);表示没有时间限制  
            conn.setConnectTimeout(6000);  
            //连接设置获得数据流  
            conn.setDoInput(true);  
            //不使用缓存  
            conn.setUseCaches(false);  
            //这句可有可无,没有影响  
            //conn.connect();  
            //得到数据流  
            InputStream is = conn.getInputStream();  
            //解析得到图片  
            bitmap = BitmapFactory.decodeStream(is);  
            //关闭数据流  
            is.close();  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
          
        return bitmap;  
          
    }  
}  

第二种方式:使用ImageLoader库文件,第一步gitup下载 https://github.com/nostra13/Android-Universal-Image-Loader,导入jar包文件

androidmanifest ,注册

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

dependencies声明

compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

使用代码

 DisplayImageOptions options;

        options = new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.ic_launcher) // 设置图片在下载期间显示的图片
                .showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或是错误的时候显示的图片
                .showImageOnFail(R.drawable.ic_launcher) // 设置图片加载/解码过程中错误时候显示的图片
                .cacheInMemory(true)// 设置下载的图片是否缓存在内存中
                .cacheOnDisk(true)// 设置下载的图片是否缓存在SD卡中
                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)// 设置图片以如何的编码方式显示
                .bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型//
                .resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位
                .build();// 构建完成

        String uri = this.list1.get(position);

         ImageLoader imageLoader;

        imageLoader = ImageLoader.getInstance();
        imageLoader.init(ImageLoaderConfiguration.createDefault(this.context));
//        imageLoader.init(ImageLoaderConfiguration.createDefault(this));
        imageLoader.displayImage(uri, holder.imageView, options);

8.progressdialog

final ProgressDialog dialog = new ProgressDialog(this);  
        dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);// 设置进度条的形式为圆形转动的进度条  
        dialog.setCancelable(true);// 设置是否可以通过点击Back键取消  
        dialog.setCanceledOnTouchOutside(false);// 设置在点击Dialog外是否取消Dialog进度条  
        dialog.setIcon(R.drawable.ic_launcher);//  
        // 设置提示的title的图标,默认是没有的,如果没有设置title的话只设置Icon是不会显示图标的  
        dialog.setTitle("提示");  
        // dismiss监听  
        dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {  
  
            @Override  
            public void onDismiss(DialogInterface dialog) {  
                // TODO Auto-generated method stub  
  
            }  
        });  
        // 监听Key事件被传递给dialog  
        dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {  
  
            @Override  
            public boolean onKey(DialogInterface dialog, int keyCode,  
                    KeyEvent event) {  
                // TODO Auto-generated method stub  
                return false;  
            }  
        });  
        // 监听cancel事件  
        dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {  
  
            @Override  
            public void onCancel(DialogInterface dialog) {  
                // TODO Auto-generated method stub  
  
            }  
        });  
        //设置可点击的按钮,最多有三个(默认情况下)  
        dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定",  
                new DialogInterface.OnClickListener() {  
  
                    @Override  
                    public void onClick(DialogInterface dialog, int which) {  
                        // TODO Auto-generated method stub  
  
                    }  
                });  
        dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消",  
                new DialogInterface.OnClickListener() {  
  
                    @Override  
                    public void onClick(DialogInterface dialog, int which) {  
                        // TODO Auto-generated method stub  
  
                    }  
                });  
        dialog.setButton(DialogInterface.BUTTON_NEUTRAL, "中立",  
                new DialogInterface.OnClickListener() {  
  
                    @Override  
                    public void onClick(DialogInterface dialog, int which) {  
                        // TODO Auto-generated method stub  
  
                    }  
                });  
        dialog.setMessage("这是一个圆形进度条");  
        dialog.show();  
        new Thread(new Runnable() {  
  
            @Override  
            public void run() {  
                // TODO Auto-generated method stub  
                try {  
                    Thread.sleep(5000);  
                    // cancel和dismiss方法本质都是一样的,都是从屏幕中删除Dialog,唯一的区别是  
                    // 调用cancel方法会回调DialogInterface.OnCancelListener如果注册的话,dismiss方法不会回掉  
                    dialog.cancel();  
                    // dialog.dismiss();  
                } catch (InterruptedException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
  
            }  
        }).start();  

 dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);// 设置进度条的形式为圆形转动的进度条  

 dialog.setCancelable(true);// 设置是否可以通过点击Back键取消  

dialog.setCanceledOnTouchOutside(false);// 设置在点击Dialog外是否取消Dialog进度条  

dialog.setIcon(R.drawable.ic_launcher);//  

  1. // 设置提示的title的图标,默认是没有的,如果没有设置title的话只设置Icon是不会显示图标的  
  2.         dialog.setTitle("提示");  

 

原文地址:https://www.cnblogs.com/hualuoshuijia/p/6894007.html