android:设置背景图片、背景颜色透明

合集下载

Android中activity背景色的设置

Android中activity背景色的设置

Android中activity背景⾊的设置主题Theme就是⽤来设置界⾯UI风格,可以设置整个应⽤或者某个活动Activity的界⾯风格。

在Android SDK中内置了下⾯的Theme,可以按标题栏Title Bar和状态栏Status Bar是否可见来分类:这些主题可以应⽤到整个应⽤Application范围或者某个活动Activity范围中。

应⽤Application范围:在AndroidManifest.xml中的application节点中设置theme属性,主题theme应⽤到整个应⽤程序中。

活动Activity范围:使⽤java代码或者在AndroidManifest.xml中对活动Activity的主题进⾏设置,主题仅应⽤到当前活动中。

在AndroidMainifest.xml设置⽅法:(XML中代码间不能有空格,注意中英⽂引号)使⽤java代码进⾏设置,在当前活动Activity的onCreate中进⾏设置:[java] view plaincopyprint?@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setTheme(android.R.style.Theme_Translucent_NoTitleBar);setContentView(yout.main);}背景颜⾊还可以在布局XML中设置:<LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#ffffff">直接设置Activity的背景颜⾊⼀般我们都是使⽤布局⽂件直接加载到Activity,从⽽覆盖了Activity的颜⾊。

Android实现背景颜色滑动渐变效果的全过程

Android实现背景颜色滑动渐变效果的全过程

Android实现背景颜⾊滑动渐变效果的全过程⽬录前⾔⼀、介绍⼀下GradientDrawable⼆、实现三、源码:总结前⾔今天和朋友聊到这个功能,刚开始的想法是⾃定义view,如何进⾏滑动监听,经过⼀列操作完成效果后,发现了⼀个贼简单的实现效果,如下(⽼规矩后⾯有可运⾏代码)。

效果图:⼀、介绍⼀下GradientDrawableGradientDrawable ⽀持渐变⾊的Drawable,与shapeDrawable是类似的,多了⽀持渐变⾊。

代码中的GradientDrawable⽐xml中的shape下gradient属性更加具体,shape下gradient属性只⽀持三⾊阶渐变,⽽GradientDrawable可以有更多的⾊阶渐变(GradientDrawable在Android中便是shape标签的代码实现)。

⼆、实现1、在布局中放⼊⼀个ScrollView,然后确保⾥⾯的内容能够达到滑动的效果。

2、获取屏幕的⾼度//获取屏幕⾼度private float getScreenHeight(){DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);int width = metric.widthPixels; // 屏幕宽度(像素)int height = metric.heightPixels; // 屏幕⾼度(像素)return height;}3、获取控件⾼度(此案例为ScrollView中包裹的第⼀个⼦控件)。

4、设置颜⾊(为了⽅便颜⾊⾃接写出来)GradientDrawable aDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,new int[]{Color.parseColor("#ffffff"), Color.parseColor("#009966"),Color.parseColor("#00ff00")});ll_base.setBackground(aDrawable);5、获取控件与屏幕⾼度(宽度)的⽐例,根据⽐例设置颜⾊个数//得到控件的⾼度与屏幕⾼度的⽐例private float getScreenHeightScale(int height){return height/getScreenHeight();}三、源码:public class BaseActivity extends Activity {private LinearLayout ll_base;private int heights;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_base);initView();}private void initView() {ll_base = (LinearLayout) findViewById(R.id.ll_base);}@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)@Overridepublic void onWindowFocusChanged(boolean hasFocus) {super.onWindowFocusChanged(hasFocus);heights = ll_base.getMeasuredHeight();float coloramount=getScreenHeightScale(heights);if (coloramount>=0&&coloramount<1.5f){GradientDrawable aDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,new int[]{Color.parseColor("#ffffff"), Color.parseColor("#009966")});ll_base.setBackground(aDrawable);}if (coloramount>=1.5f&&coloramount<3.0f){GradientDrawable aDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,new int[]{Color.parseColor("#ffffff"), Color.parseColor("#009966"), Color.parseColor("#00ff00")});ll_base.setBackground(aDrawable);}if (coloramount>=3.0f&&coloramount<4.5f){GradientDrawable aDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,new int[]{Color.parseColor("#ffffff"), Color.parseColor("#009966"), Color.parseColor("#00ff00"),Color.parseColor("#000000")});ll_base.setBackground(aDrawable);}// .................}//得到控件的⾼度与屏幕⾼度的⽐例private float getScreenHeightScale(int height){return height/getScreenHeight();}//获取屏幕⾼度private float getScreenHeight(){DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);int width = metric.widthPixels; // 屏幕宽度(像素)int height = metric.heightPixels; // 屏幕⾼度(像素)return height;}}总结到此这篇关于Android实现背景颜⾊滑动渐变效果的⽂章就介绍到这了,更多相关Android背景颜⾊滑动渐变内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

Android实现修改状态栏背景、字体和图标颜色的方法

Android实现修改状态栏背景、字体和图标颜色的方法

Android实现修改状态栏背景、字体和图标颜⾊的⽅法前⾔:Android开发,对于状态栏的修改,实在是不友好,没什么api可以⽤,不像ios那么⽅便.但是ui⼜喜欢只搞ios⼀套.没办法.各种翻源码,写反射.真的蛋疼.需求场景:当toolbar及状态栏需要为⽩⾊或浅⾊时(如简书),状态栏由于⽤的Light风格Theme,字体,图标也都是⽩⾊,会看不清.如果改变成⿊⾊就很和谐了.⼀.修改状态栏颜⾊:改变状态栏颜⾊,可以看看这篇⽂章.传送门:传送门实现的效果:这种⽅法实现的状态栏变⾊,没有⿊⾊背景.使⽤全屏模式实现的效果如下(QQ的效果):很明显的⿊⾊背景.我⽤的⼿机是华为,系统7.0⼆.修改状态栏字体:通⽤⼯具类:public class StatusBarUtil {/*** 设置状态栏⿊⾊字体图标,* 适配4.4以上版本MIUIV、Flyme和6.0以上版本其他Android** @return 1:MIUUI 2:Flyme 3:android6.0*/public static int getStatusBarLightMode(Window window) {int result = 0;if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {if (MIUISetStatusBarLightMode(window, true)) {result = 1;} else if (FlymeSetStatusBarLightMode(window, true)) {result = 2;} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);result = 3;} else {//5.0}}return result;}/*** 已知系统类型时,设置状态栏⿊⾊字体图标。

android 自定义Dialog背景透明及显示位置设置

android 自定义Dialog背景透明及显示位置设置

android 自定义Dialog背景透明及显示位置设置代码如下:1、自定义Dialogpublic class SelectDialog extends AlertDialog{public SelectDialog(Context context, int theme) {super(context, theme);}public SelectDialog(Context context) {super(context);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.slt_cnt_type);}}2、布局文件slt_cnt_type.xml代码<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:padding="10dp" android:layout_width="115dp" android:layout_height="wrap_content" android:background="@col or/blue"><Button android:layout_height="wrap_content" android:background="#00000000" android:layout_width="fill_parent " android:text="全部联系人" android:paddingTop="5dp" android:paddingBottom="5dp" android:paddingLeft="10dp" android:g ravity="left|center_vertical" android:id="@+id/btnSltCntAll"></Button><Button android:layout_height="wrap_content" android:background="#00000000" style="@drawable/greenhand_button " android:text="咕咚用户" android:gravity="left|center_vertical" android:paddingBottom="5dp" android:paddingTop="5dp " android:paddingLeft="10dp" android:paddingRight="10dp" android:layout_width="fill_parent" android:id="@+id/btnSlt GudongUser"></Button><Button style="@drawable/greenhand_button" android:background="#00000000" android:layout_height="wrap_content " android:layout_width="fill_parent" android:text="推荐用户" android:gravity="left|center_vertical" android:paddingT op="5dp" android:paddingBottom="5dp" android:paddingLeft="10dp" android:id="@+id/btnSltRecommend"></Button></LinearLayout>3、颜色color.xml代码<?xml version="1.0" encoding="utf-8"?><resources><color name="transparent">#00000000</color></resources>4、样式style.xml代码<?xml version="1.0" encoding="utf-8"?><resources><style name="dialog" parent="@android:style/Theme.Dialog"><item name="android:windowFrame">@null</item><!--边框--><item name="android:windowIsFloating">true</item><!--是否浮现在activity之上--><item name="android:windowIsTranslucent">false</item><!--半透明--><item name="android:windowNoTitle">true</item><!--无标题--><item name="android:windowBackground">@color/transparent</item><!--背景透明--><item name="android:backgroundDimEnabled">false</item><!--模糊--></style></resources>4、显示DialogSelectDialog selectDialog = new SelectDialog(this,R.style.dialog);//创建Dialog并设置样式主题Window win = selectDialog.getWindow();LayoutParams params = new LayoutParams();params.x = -80;//设置x坐标params.y = -60;//设置y坐标win.setAttributes(params);selectDialog.setCanceledOnTouchOutside(true);//设置点击Dialog外部任意区域关闭Dialog selectDialog.show();。

AndroidStudio全屏沉浸式透明状态栏效果

AndroidStudio全屏沉浸式透明状态栏效果

AndroidStudio全屏沉浸式透明状态栏效果如何实现?1.)首先实现全屏第一种:继承主题特定主题在Android API 19以上可以使用****.TranslucentDecor***有关的主题,自带相应半透明效果,Theme.Holo.NoActionBar.TranslucentDecor和Theme.Holo.Light.NoActionBar.TranslucentDecor两种主题为新增加的,所以要新建values-v19文件夹并创建styles文件添加如下代码<style name="AppBaseTheme" parent="android:Theme.Holo.Light.NoActionBar.TranslucentDec or"><!-- Customize your theme here. --></style>第二种:在activity中采用代码的方式Android 4.4以上可以添加如下代码if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//透明状态栏window.addFlags(youtParams.FLAG_TRA NSLUCENT_STATUS);//透明导航栏window.addFlags(youtParams.FLAG_TRA NSLUCENT_NAVIGATION);}Android 5.0 以上也可以使用下面的代码实现全屏if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {window.clearFlags(youtParams.FLAG_TRANSLUCENT_STATUS|youtParams.FLAG_TRANSLUCENT_NAVIGATI ON);window.getDecorView().setSystemUiVisibility(View.SYSTEM_ UI_FLAG_LAYOUT_FULLSCREEN| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);window.addFlags(youtParams.FLAG_DR AWS_SYSTEM_BAR_BACKGROUNDS);}2.)解决状态栏占位问题第一种:主题添加如下设置<item name="android:fitsSystemWindows">true</item>第二种:activity layout根目录添加下面代码android:fitsSystemWindows="true"第三种:通过Java代码设置rootview.setFitsSystemWindows(true);3.)状态栏导航栏设置背景色4.4以上的可以采用修改contentView的背景色,或者动态添加一个view到contentView上if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//透明状态栏window.addFlags(youtParams.FLAG_TRA NSLUCENT_STATUS);//透明导航栏window.addFlags(youtParams.FLAG_TRA NSLUCENT_NAVIGATION);//设置contentview为fitsSystemWindowsViewGroup contentView = (ViewGroup) findViewById(android.R.id.content);View childAt = contentView.getChildAt(0);if (childAt != null) {childAt.setFitsSystemWindows(true);}//给statusbar着色View view = new View(this);view.setLayoutParams(newyoutParams(youtParams.MATCH_PA RENT, getStatusBarHeight(this)));view.setBackgroundColor(color);contentView.addView(view);}动态获取StatusBarHeight函数如下/*** 获取状态栏高度** @param context context* @return 状态栏高度*/private static int getStatusBarHeight(Context context) {// 获得状态栏高度int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");returncontext.getResources().getDimensionPixelSize(resourceId);}动态获取NavigationBarHeight函数如下/*** 获取导航栏高度** @param context context* @return 导航栏高度*/public static int getNavigationBarHeight(Context context) { int resourceId = context.getResources().getIdentifier("navigation_bar_height", "dimen", "android");returncontext.getResources().getDimensionPixelSize(resourceId);}4.)贴出整体java代码实现方式private void initWindows() {Window window = getWindow();int color = getResources().getColor(R.color.wechatBgColor);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {window.clearFlags(youtParams.FLAG_TR ANSLUCENT_STATUS|youtParams.FLAG_TRANSLUCENT_NAVIGATI ON);window.getDecorView().setSystemUiVisibility(View.SYSTEM_ UI_FLAG_LAYOUT_FULLSCREEN| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);window.addFlags(youtParams.FLAG_DR AWS_SYSTEM_BAR_BACKGROUNDS);//设置状态栏颜色window.setStatusBarColor(color);//设置导航栏颜色window.setNavigationBarColor(getResources().getColor(R.c olor.footerBgColor));ViewGroup contentView = ((ViewGroup) findViewById(android.R.id.content));View childAt = contentView.getChildAt(0);if (childAt != null) {childAt.setFitsSystemWindows(true);}} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//透明状态栏window.addFlags(youtParams.FLAG_TRA NSLUCENT_STATUS);//透明导航栏window.addFlags(youtParams.FLAG_TRA NSLUCENT_NAVIGATION);//设置contentview为fitsSystemWindowsViewGroup contentView = (ViewGroup) findViewById(android.R.id.content);View childAt = contentView.getChildAt(0);if (childAt != null) {childAt.setFitsSystemWindows(true);}//给statusbar着色View view = new View(this);view.setLayoutParams(newyoutParams(youtParams.MATCH_PA RENT, getStatusBarHeight(this)));view.setBackgroundColor(color);contentView.addView(view);}if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && useStatusBarColor) {//android6.0以后可以对状态栏文字颜色和图标进行修改getWindow().getDecorView().setSystemUiVisibility(View.SYS TEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);}}转载自:https:///whoislcj/p/6250284.html。

Android基本控件和事件-讲义

Android基本控件和事件-讲义

第一章 Android应用的基石-控件✓掌握Android的常用控件、事件、对话框✓掌握各种Android控件TextView、Button、ImageButton、EditText、RadioButton、Checkbox、ToggleButton ✓掌握控件的常用事件本章简介在第一学期,我们已经学习了安卓中的基本控件,在本章我们会复习之前学习过的基本控件,同时还会接触到安卓中新的控件预习作业请按以下步骤预习本章内容:1.带着以下任务,阅读、学习本章的相关资料。

2.标注出本章看不懂或存在疑惑的部分。

3.整理、记录学习中的问题。

4.熟记本章的英文单词。

请到中心听课前,完成下面的作业。

1.背诵英文单词(1)view:(2)text:(3)button:(4)image:(5)selector:(6)edit:(7)alert:(8)dialog:(9)Toggle:2.预习并回答以下问题阅读本章内容,回答以下问题(1)请说出至少3种本章所介绍的Android控件。

(2)简述ToggleButton的用法。

3.预习完成编码题请用本章所学的知识点,把ToggleButton的案例实现一遍4.记录预习的问题记录学习中遇到的问题,填写于下面的横线上,以便集中探讨解决————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————1.1 Andorid常用控件经过第一学期的学习,大家已经接触到Android中的一些控件了,使用控件可以很方便的进行Android应用程序中界面的开发,还可以很简单的使用事件进行一些处理,今天我们会复习到TextView、Button、ImageButton、EditText、RadioButton等几种控件。

Android实现新手引导半透明蒙层效果

Android实现新手引导半透明蒙层效果

Android实现新⼿引导半透明蒙层效果本⽂实例为⼤家分享了Android实现新⼿引导半透明蒙层效果的具体代码,供⼤家参考,具体内容如下效果图:其中的⽂字和我知道啦是ui切得两张透明图⽚⾃定义View:package com.cymobi.library.view.widget;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.graphics.RectF;import android.util.Log;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.view.ViewTreeObserver;import android.widget.FrameLayout;import android.widget.RelativeLayout;import com.cymobi.library.R;/*** Created by xuke on 2017/8/24.*/public class GuideView extends RelativeLayout implements ViewTreeObserver.OnGlobalLayoutListener {private final String TAG = getClass().getSimpleName();private Context mContent;private boolean first = true;private static final String SHOW_GUIDE_PREFIX = "show_guide";private int offsetX, offsetY;private int radius;private View targetView;private View textGuideView;private View customGuideView;private Paint mCirclePaint;private Paint mBackgroundPaint;private boolean isMeasured;private int[] center;private PorterDuffXfermode porterDuffXfermode;private Bitmap bitmap;private int backgroundColor;private Canvas temp;private Direction direction;private MyShape myShape;private int[] location;private boolean onClickExit;private OnClickCallback onclickListener;private int targetViewWidth;private int targetViewHeight;private boolean isContain = false;private boolean needDraw = true;public GuideView(Context context) {super(context);this.mContent = context;}public int[] getLocation() {return location;}public void setLocation(int[] location) {this.location = location;}public int getRadius() {return radius;}public void setRadius(int radius) {this.radius = radius;}public void setDirection(Direction direction) {this.direction = direction;}public void setShape(MyShape shape) {this.myShape = shape;}public void setBgColor(int background_color) {this.backgroundColor = background_color;}public void setTargetView(View targetView) {this.targetView = targetView;}public int[] getCenter() {return center;}public void setCenter(int[] center) {this.center = center;}public void setOffsetX(int offsetX) {this.offsetX = offsetX;}public void setOffsetY(int offsetY) {this.offsetY = offsetY;}public void setContain(boolean contain) {this.isContain = contain;}public void setCustomGuideView(View customGuideView) {this.customGuideView = customGuideView;if (!first) {restoreState();}}public void setTextGuideView(View textGuideView) {this.textGuideView = textGuideView;if (!first) {restoreState();}}private boolean hasShown() {if (targetView == null)return true;return mContent.getSharedPreferences(TAG, Context.MODE_PRIVATE).getBoolean(generateUniqId(targetView), false); }private String generateUniqId(View v) {return SHOW_GUIDE_PREFIX + v.getId();}public void setOnclickListener(OnClickCallback onclickListener) {this.onclickListener = onclickListener;}private void setClickInfo() {final boolean exit = onClickExit;setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (onclickListener != null) {onclickListener.onClickedGuideView();}if (exit) {hide();}}});}public void show() {Log.v(TAG, "show");if (hasShown())return;if (targetView != null) {targetView.getViewTreeObserver().addOnGlobalLayoutListener(this);}this.setBackgroundResource(R.color.transparent);this.bringToFront(); //设置在最上层((FrameLayout) ((Activity) mContent).getWindow().getDecorView()).addView(this);first = false;}public void hide() {Log.v(TAG, "hide");if (customGuideView != null || textGuideView != null) {targetView.getViewTreeObserver().removeOnGlobalLayoutListener(this);this.removeAllViews();((FrameLayout) ((Activity) mContent).getWindow().getDecorView()).removeView(this);restoreState();}}/*** 获得targetView 的宽⾼** @return*/private int[] getTargetViewSize() {int[] location = {-1, -1};if (isMeasured) {location[0] = targetView.getWidth();location[1] = targetView.getHeight();}return location;}/*** 获得targetView 的半径** @return*/private int getTargetViewRadius() {if (isMeasured) {int[] size = getTargetViewSize();int x = size[0];int y = size[1];return (int) (Math.sqrt(x * x + y * y) / 2);}return -1;}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);Log.v(TAG, "onDraw");if (!isMeasured)return;if (targetView == null)return;drawBackground(canvas);}private void drawBackground(Canvas canvas) {Log.v(TAG, "drawBackground");needDraw = false;// 先绘制bitmap,再将bitmap绘制到屏幕bitmap = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888);temp = new Canvas(bitmap);// 背景画笔Paint bgPaint = new Paint();if (backgroundColor != 0) {bgPaint.setColor(backgroundColor);} else {bgPaint.setColor(getResources().getColor(R.color.bg_shadow));}// 绘制屏幕背景temp.drawRect(0, 0, temp.getWidth(), temp.getHeight(), bgPaint);// targetView 的透明圆形画笔if (mCirclePaint == null) {mCirclePaint = new Paint();}//透明效果porterDuffXfermode = new PorterDuffXfermode(PorterDuff.Mode.CLEAR); //SRC_OUT或者CLEAR都可以 mCirclePaint.setXfermode(porterDuffXfermode);mCirclePaint.setAntiAlias(true);if (myShape != null) {RectF oval = new RectF();switch (myShape) {case CIRCULAR://圆形temp.drawCircle(center[0], center[1], radius, mCirclePaint);break;case RECTANGULAR://圆⾓矩形if (isContain) {oval.left = location[0] - 8;oval.top = center[1] - targetViewHeight / 2 - 8;oval.right = location[0] + targetViewWidth + 8;oval.bottom = center[1] + targetViewHeight / 2 + 8;} else {oval.left = location[0] + 5;oval.top = center[1] - targetViewHeight / 2 + 1;oval.right = location[0] + targetViewWidth - 5;oval.bottom = center[1] + targetViewHeight / 2 - 1;}temp.drawRoundRect(oval, radius, radius, mCirclePaint);break;}} else {temp.drawCircle(center[0], center[1], radius, mCirclePaint);}// 绘制到屏幕canvas.drawBitmap(bitmap, 0, 0, bgPaint);bitmap.recycle();}@Overridepublic void onGlobalLayout() {if (isMeasured)return;if (targetView.getHeight() > 0 && targetView.getWidth() > 0) {isMeasured = true;targetViewWidth = targetView.getWidth();targetViewHeight = targetView.getHeight();}// 获取targetView的中⼼坐标if (center == null) {// 获取右上⾓坐标location = new int[2];targetView.getLocationInWindow(location);center = new int[2];// 获取中⼼坐标center[0] = location[0] + targetView.getWidth() / 2;center[1] = location[1] + targetView.getHeight() / 2;}// 获取targetView外切圆半径if (radius == 0) {radius = getTargetViewRadius();}//⽂字图⽚和提⽰图⽚createView();}//⽂字图⽚和我知道啦图⽚⼀起放private void createView() {Log.v(TAG, "createView");//⽂字提⽰LayoutParams textViewParams;textViewParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); textViewParams.setMargins(0, center[1] + radius + 10, 0, 0);// 我知道提⽰布局参数LayoutParams guideViewParams;guideViewParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); guideViewParams.setMargins(0, center[1] + radius + 10, 0, 0);if (textGuideView != null && customGuideView != null) {if (direction != null) {int left = center[0] + targetViewWidth / 2;int right = center[0] + targetViewWidth / 2;int top = center[1] - targetViewHeight / 2;int bottom = center[1] + targetViewHeight / 2;//我⾃⼰的项⽬只需要这两个⽅向的, 所以这⾥就只写了Top和Boottomswitch (direction) {case TOP:this.setGravity(Gravity.CENTER_HORIZONTAL);textViewParams.setMargins(offsetX, top - offsetY, -offsetX, -top + offsetY);guideViewParams.setMargins(offsetX, -3 * offsetY + top, -offsetX, -top + 3 * offsetY);break;case BOTTOM:this.setGravity(Gravity.CENTER_HORIZONTAL);textViewParams.setMargins(offsetX, bottom + offsetY, -offsetX, -bottom - offsetY);guideViewParams.setMargins(offsetX, bottom + 3 * offsetY, -offsetX, -bottom - 3 * offsetY); break;}if (this != null)this.removeAllViews();this.addView(textGuideView, textViewParams);this.addView(customGuideView, guideViewParams);}}}/*** 定义GuideView相对于targetView的⽅位,*/public enum Direction {LEFT, TOP, RIGHT, BOTTOM,LEFT_TOP, LEFT_BOTTOM,RIGHT_TOP, RIGHT_BOTTOM}/*** 定义⽬标控件的形状。

Android给TextView设置透明背景、圆角边框

Android给TextView设置透明背景、圆角边框

Android给TextView设置透明背景、圆角边框第一种方法:在drawable文件夹下新建一个文件设置背景样式代码:在drawable文件夹下面新建text_view_border.xml[java]view plaincopy1.<?xml version="1.0" encoding="UTF-8"?>2.<shape xmlns:android="/apk/res/android">3.<solid android:color="#80858175" />4.<stroke android:width="1dip" android:color="#aea594" / >5.<corners android:topLeftRadius="2dp"6.android:topRightRadius="2dp"7.android:bottomRightRadius="2dp"8.android:bottomLeftRadius="2dp"/>9.</shape>在布局文件调用[java]view plaincopy1.<TextView2.android:id="@+id/tv"3.android:layout_width="wrap_content"4.android:layout_height="wrap_content"5.android:background="@drawable/text_view_border" />在类文件中调用:[java]view plaincopy.setBackgroundResource(R.drawable.text_view_border);分析:solid设置填充颜色,颜色值以#80开头表示透明stroke 设置边框宽度,颜色值corners设置圆角第二种方法:用图片设置background。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

android:设置背景图片、背景颜色透明
2012-03-15 16:51:09|分类: android UI |标签: |字号大中小订阅
Button或者ImageButton的背景设为透明或者半透明
半透明<Button android:background="#e0000000" ... /> 透明<Button android:background="#00000000" ... />颜色和不透明度 (alpha) 值以十六进制表示法表示。

任何一种颜色的值范围都是 0 到 255(00 到 ff)。

对于alpha,00 表示完全透明,ff 表示完全不透明。

表达式顺序是“aabbggrr”,其中“aa=alpha”(00 到 ff);“bb=blue”(00 到 ff);“gg=green”(00 到 ff);“rr=red”(00 到 ff)。

例如,如果您希望对某叠加层应用不透明度为 50% 的蓝色,则应指定以下值:7fff0000 RGB
设置背景图片透明度:
View v = findViewById(R.id.content);//找到你要设透明背景的layout 的id
v.getBackground().setAlpha(100);//0~255透明度值
设置背景颜色透明度:
ImageView.setBackgroundColor(Color.TRANSPARENT);
android设置背景色为透明
方法一:只要在配置文件内activity属性配置内加上android:theme=@android:style/Theme.Translucent 就好了。

这样就调用了android的透明样式!
方法二:
先在res/values下建colors.xml文件,写入:
<?xmlversionxmlversion="1.0"encoding="UTF-8"?>
<resources>
<colornamecolorname="transparent">#9000</color>
</resources>
这个值设定了整个界面的透明度,为了看得见效果,现在设为透明度为56%(9/16)左右。

再在res/values/下建styles.xml,设置程序的风格
<?xml versionxmlversion="1.0"encoding="utf-8"?> <resources>
<stylenamestylename="Transparent">
<itemnameitemname="android:windowBackground">@color /transparent</item>
<itemnameitemname="android:windowIsTranslucent">tru e</item>
<itemnameitemname="android:windowAnimationStyle">@+ android:style/Animation.Translucent</item>
</style>
</resources>
最后一步,把这个styles.xml用在相应的Activity上。

即在AndroidManifest.xml中的任意<activity>标签中添加
android:theme="@style/transparent"
如果想设置所有的activity都使用这个风格,可以把这句
标签语句添加在<application>中。

最后运行程序,哈哈,是不是发现整个界面都被蒙上一层半透明了。

最后可以把背景色#9000换成#0000,运行程序后,就全透明了,看得见背景下的所有东西可以却都操作无效。

相关文档
最新文档