当前位置:  编程技术>移动开发
本页文章导读:
    ▪相干绘制一些片段-Shader        有关绘制一些片段--Shader public class ShaderActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ShaderView shaderView = new ShaderView(getApplicationContext()); .........
    ▪ 在activity起步后立即弹出PopupWindow的三个方法        在activity启动后立即弹出PopupWindow的三个方法 若在Activity的onCreate()方法中直接写弹出PopupWindow方法会报错,因为activity没有完全启动是不能弹出PopupWindow的。 那我们只需要在activity完全启动后.........
    ▪ RUI手机圆桌面,开年大更新绝对值得拥有       RUI手机桌面,开年大更新绝对值得拥有!【软件介绍】 RUI手机桌面属于你的智能分类管理桌面 RUI手机桌面为你轻松管理桌面应用,是目前最好的智能分类管理桌面。多套主题,随心而换。.........

[1]相干绘制一些片段-Shader
    来源: 互联网  发布时间: 2014-02-18
有关绘制一些片段--Shader

public class ShaderActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		ShaderView shaderView = new ShaderView(getApplicationContext());
		this.setContentView(shaderView,new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
	}
	static class ShaderView extends View{

		private Bitmap mBitmap;
		private Shader linearGradient ;
		private Shader composeShader;
		private Shader bitmapShader;
		private Shader radialGradient;
		private Shader sweepGradient;
		private Rect rect;
		private Paint paint;
		public ShaderView(Context context) {
		super(context);
		InputStream is = context.getResources().openRawResource(R.drawable.ic_launcher);
		mBitmap = BitmapFactory.decodeStream(is);
		/**
		 * 注意1:中心坐标是相对canvas的坐标系设置的。下边SweepGradient类似
		 * 注意2:positions 坐标最小为0,最大为1,只是一个比例,不是具体值
		 */
		radialGradient = new RadialGradient(140, 100, 50, new int[]{Color.RED,Color.GREEN,Color.BLUE}, new float[]{0f,0.5f,1f}, TileMode.MIRROR);
		/**
		 * 注意3:postion参数,0指的是正常坐标系的0度角方向,顺时针增加. 0.3则为正常坐标系的-360*0.3
  而下边中0.3对应的Color.RED指的是从0.3开始有颜色渐变。而在0~0.3之间没有颜色渐变的
  同理,0.6指的是从0.3~0.6 Color.RED变为Color.GREEN 0.6时候,颜色为Color.GREEN  再从0.6~0.8 由Color.GREEN变为 Color.BLUE。 0.8的时候为Color.BLUE 0.8~1 依    然为纯Color.BLUE
		 */
		sweepGradient = new SweepGradient(100, 340, new int[]{Color.RED, Color.GREEN,Color.BLUE},new float[]{0.3f,0.6f,0.8f});
		bitmapShader = new BitmapShader(mBitmap, TileMode.REPEAT, TileMode.REPEAT);
		/**
		 *注意4:如果前四个参数设置为 0,0,0,5 这是纵方向重复,反之设为0,0,5,0单横方向重复
		 */
		linearGradient = new LinearGradient(0, 0, 5, 5, 0x00ffffff, 0xff000000, TileMode.REPEAT);
		/**
		 * 注意5:new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER)  参数和下边的效果是一样的
		 */
		composeShader = new ComposeShader(bitmapShader, linearGradient, PorterDuff.Mode.SRC_OVER);
		rect = new Rect();
		paint = new Paint();
	}
	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		rect.set(0, 0, 200, 200);
		paint.setShader(radialGradient);
		canvas.drawRect(rect, paint);
		
		rect.set(240, 0, 480, 200);
		/**
		 * 注意6:TileMode.REPEAT 和 TileMode.MIRROR 都是重复叠。但是TileMode.CLAMP指的是如果shader不注意画满区间,以边缘颜色填充
		 */
		paint.setShader(new RadialGradient(340, 100, 50, new int[]{Color.RED,Color.GREEN,Color.BLUE}, new float[]{0f,0.5f,1f}, TileMode.CLAMP));

                /**
		 * 注意7:如果设置了Shader 再设置color是没有效果的
		 */
                paint.setColor(Color.RED);
		canvas.drawRect(rect, paint);
		
		rect.set(0, 240, 200, 480);
		paint.setShader(sweepGradient);
		canvas.drawRect(rect, paint);
		
		
		rect.set(240,240,480,480);
		paint.setShader(bitmapShader);
		canvas.drawRect(rect, paint);
		
		rect.set(0,500,200,700);
		paint.setShader(linearGradient);
		canvas.drawRect(rect, paint);
		
		rect.set(220,500,480,700);
		paint.setShader(composeShader);
		canvas.drawRect(rect, paint);
		
	}
	
}
}

个人感觉shader一般用来绘制背景图的时候用处比较大





    
[2] 在activity起步后立即弹出PopupWindow的三个方法
    来源: 互联网  发布时间: 2014-02-18
在activity启动后立即弹出PopupWindow的三个方法
若在Activity的onCreate()方法中直接写弹出PopupWindow方法会报错,因为activity没有完全启动是不能弹出PopupWindow的。

那我们只需要在activity完全启动后再弹出PopupWindow就行了。

第一种方法: 利用Activity的 onWindowFocusChanged()方法

[java] view plaincopy
  • @Override  
  • public void onWindowFocusChanged(boolean hasFocus) {  
  •     // TODO Auto-generated method stub  
  •     super.onWindowFocusChanged(hasFocus);  
  •     // 弹出PopupWindow的具体代码  
  • }  
  • 第二种方法: 利用Handler和Runnable

    [java] view plaincopy
  • private Handler mHandler = new Handler();  
  •   
  • @Override  
  • protected void onCreate(Bundle savedInstanceState) {  
  •     // TODO Auto-generated method stub  
  •     super.onCreate(savedInstanceState);  
  •     setContentView(R.layout.main);  
  •     mHandler.postDelayed(mRunnable, 500);  
  • }  
  •       
  • private Runnable mRunnable = new Runnable() {  
  •     public void run() {  
  •     // 弹出PopupWindow的具体代码  
  •     }  
  • };  

  • 第三种方法:
           
      public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		mHandler.sendEmptyMessageDelayed(SHOWWINDOW, 200);  
    	}

      
    private Handler mHandler = new Handler()  
        {  
            public void handleMessage(Message msg)  
            {  
                switch (msg.what)  
                {  
                    case SHOWWINDOW:  
                    	popTipMessage();
                        break;  
                    case ClOSEWINDOW:  
                        break;  
                }  
            }  
        }; 


        
    [3] RUI手机圆桌面,开年大更新绝对值得拥有
        来源: 互联网  发布时间: 2014-02-18
    RUI手机桌面,开年大更新绝对值得拥有!
    【软件介绍】
    RUI手机桌面属于你的智能分类管理桌面
    RUI手机桌面为你轻松管理桌面应用,是目前最好的智能分类管理桌面。多套主题,随心而换。实用小插件,操作更便捷。分类、管理、下载程序在桌面上一步到位。
    特色功能
    1.软件自动分类—所有应用自动分类,常用、游戏、社交、影音、生活、工具六大类,便捷查找软件
    2.图标风格­—图标智能铺排到首页,免去手动拖动
    3. RUI精品导航—必备精品软件,新机、新手装机福音
    4. 主题美化—多套主题,随心而换,体验新鲜,卡通猫猫、中国风、金属感、手绘风各式主题,持续添加
    5. 内置实用小插件,随时获知天气,快捷设置开关,一键清理任务,
    6. 晶莹圆润图标、仿iPhone文件夹



    官方下载地址: www.uprui.com

        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    数据库 iis7站长之家
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3