当前位置:首页 » 安卓系统 » android圆形view

android圆形view

发布时间: 2024-06-24 23:55:56

① Android 如何判断一个View重绘或加载完成

1、view重绘时回调(即监听函数,当view重绘完成自动动用,需要向view的观察者添加监听器)。格式:

view.getViewTreeObserver().addOnDrawListener(new OnDrawListener() {

@Override

public void onDraw() {

// TODO Auto-generated method stub

}

});

2、view加载完成时回调(当view加载完成自动动用,需要向view的观察者添加监听器)。格式:

view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

@Override

public void onGlobalLayout() {

// TODO Auto-generated method stub

}

});

(1)android圆形view扩展阅读:

两种方式刷新:

1、主线程可以直接调用Invalidate()方法刷新

2、子线程可以直接调用postInvalidate()方法刷新。

API的描述 : Invalidatethe whole view. If the view is visible, onDraw(Canvas) will be called at somepoint in the future. This must be called from a UI thread. To call from anon-UI thread, call postInvalidate().。

API的描述译文:当Invalidate()被调用的时候,View的OnDraw()就会被调用,Invalidate()必须是在UI线程中被调用,如果在新线程中更新视图的就调用postInvalidate()。

② Android-EditView文本编辑控件详解

EditView 是Android开发当中运用到最多的控件之一,主要用户界面上的输入框。

View --> TextView --> EditView 。

1.设置提示文本:

2.设置hint提示文字颜色:

3.设置输入文本后的文字颜色:

4.设置输入文本后的字体大小:

5.设置输入文本后的字体样式,bold(加粗),italic(倾斜),normal(默认是正常字体)。

6.设置被选中字体的颜色.默认为 Theme 主题中的 “colorAccent”的颜色。

7.设置被光标的颜色.默认为 Theme 主题中的 “colorAccent”的颜色。

8.设置文本的水平缩放系数。

9.设置hint提示文本的字体.normal(默认)\monospace\sans\serif。

10.设置EditText背景."@null"设置背景为透明.当我们设置背景后,EditText的下划线就会消失。

11.设置文本的颜色,字体,大小和样式。

12.设置只接收指定的文本内容,适合只能输出特定内容的需求。

13.设置文本的类型,用于帮助输入法显示合适的键盘类型。

14.设置EditText最多接受的文本的个数:

15.设置EditText显示的行数,设置两行就显示两行,即使第二行没有数据。

16.设置行间距的倍数. 如设置成1.5倍。

17.设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号.

③ android 如何让自定VIEW的显示超出view的定义大小

  1. 在onTouchEvent里面能获得当前点击位置的坐标,根据位置的变化,以原点为基础,通过scrollBy来设置view的显示位置。

  2. 自定义Layout实现放入其中的组件可以动态改变位置和大小。

自定义CustomLayout.java

package com.wxq.layout;

import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewGroup;
//import android.widget.AbsoluteLayout;

public class CustomLayout extends ViewGroup {

public CustomLayout(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

public CustomLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}

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

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// TODO Auto-generated method stub

}

}

main.xml:

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

3.其中只有自己的布局,其他的View要自己手动添加。

主程序:

TextView mTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

LayoutInflater inflater = getLayoutInflater();
LinearLayout linearLayout = (LinearLayout) inflater.inflate(R.layout.main, null);

mTextView = new TextView(this);
mTextView.setText("wxq say hello!");
mTextView.setTextColor(Color.WHITE);
mTextView.setBackgroundColor(Color.RED);
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(100, 100);

CustomLayout cLayout = (CustomLayout) linearLayout.findViewById(R.id.cLayout);
cLayout.setBackgroundColor(Color.BLUE);
cLayout.addView(mTextView,layoutParams);
mTextView.layout(20, 20, 150+20, 150+20);

Log.d("wxq", "mTextView = " +mTextView + ",and parent is:"+mTextView.getParent());
mTextView.post(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub

Log.d("wxq", "textW = "+mTextView.getMeasuredWidth()+ ",H = "+mTextView.getMeasuredHeight());
}
});

setContentView(linearLayout);
}

实现的效果如下:

④ android glide 怎么设置只有一个圆角

附录1简单介绍了android开源的图片加载框架。在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide在加载过程中就把矩形图转换成圆形的,则需要在Glide之上引入一个开源项目:glide-transformations
glide-transformations在github上的项目主页是:https://github.com/wasabeef/glide-transformations
写一个例子说明。

[java] view plain
package zhangphil.app;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;

import com.bumptech.glide.Glide;

import jp.wasabeef.glide.transformations.BlurTransformation;
import jp.wasabeef.glide.transformations.CropCircleTransformation;
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;

public class MainActivity extends AppCompatActivity {

//我csdn博客头像
String url = "http://avatar.csdn.net/9/7/A/1_zhangphil.jpg";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//原图,是我博客的头像
ImageView image1 = (ImageView) findViewById(R.id.image1);
Glide.with(this).load(url).crossFade(1000).into(image1);

//原图 -> 圆图
ImageView image2 = (ImageView) findViewById(R.id.image2);
Glide.with(this).load(url).bitmapTransform(new CropCircleTransformation(this)).crossFade(1000).into(image2);

//原图的毛玻璃、高斯模糊效果
ImageView image3 = (ImageView) findViewById(R.id.image3);
Glide.with(this).load(url).bitmapTransform(new BlurTransformation(this, 25)).crossFade(1000).into(image3);

//原图基础上复合变换成圆图 +毛玻璃(高斯模糊)
ImageView image4 = (ImageView) findViewById(R.id.image4);
Glide.with(this).load(url).bitmapTransform(new BlurTransformation(this, 25), new CropCircleTransformation(this)).crossFade(1000).into(image4);

//原图处理成圆角,如果是四周都是圆角则是RoundedCornersTransformation.CornerType.ALL
ImageView image5 = (ImageView) findViewById(R.id.image5);
Glide.with(this).load(url).bitmapTransform(new RoundedCornersTransformation(this, 30, 0, RoundedCornersTransformation.CornerType.BOTTOM)).crossFade(1000).into(image5);
}
}

布局则比较简单,是一个垂直方向的线性布局布局了5个ImageView,不再赘述。

代码运行结果。

附录:

1,《Android图片加载与缓存开源框架:Android Glide》链接:http://blog.csdn.net/zhangphil/article/details/45535693

⑤ android开发图形类主要有哪些

  • Canvas类:

    Canvas类代表画布,通过该类使用的方法,可以绘制各种图形(如矩形、圆形、线形)通常情况下,在Android中绘制图形需要先创建继承自View的类的视图,并且在该类中重写其OnDraw(Canvas canvas)方法,然后在绘制的Activity中添加该视图。

  • View:组件,理解为画布

    Drawable:所有可见对象的描述,理解为:素材类;

    Bitmap:图片类;

    Canvas:画笔;

    Paint:画笔样式与颜色、特效的集合;

    对于Android UI开发自绘控件和游戏制作而言掌握好绘图基础是必不可少的有关OpenGL ES相关。

热点内容
电容为啥耐压越大存储量越小 发布:2024-11-26 11:31:52 浏览:189
天然气车载储气瓶泄露处置脚本 发布:2024-11-26 11:17:36 浏览:254
换ip的服务器 发布:2024-11-26 11:17:29 浏览:75
容器平台怎么看配置 发布:2024-11-26 11:06:09 浏览:940
qq的xml源码 发布:2024-11-26 11:04:05 浏览:704
ip设计缓存设置 发布:2024-11-26 10:56:49 浏览:107
c语言k值 发布:2024-11-26 10:48:53 浏览:870
Java霸王大陆 发布:2024-11-26 10:44:52 浏览:704
乐高机器人怎么编程 发布:2024-11-26 10:36:12 浏览:374
进化脚本 发布:2024-11-26 10:27:38 浏览:858