android shape 使用了一张资源图片,结果按钮就没有达到我想要的圆角效果,如下图:请高手指点,有代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android shape 使用了一张资源图片,结果按钮就没有达到我想要的圆角效果,如下图:请高手指点,有代码相关的知识,希望对你有一定的参考价值。
<item android:drawable="@drawable/plant_manager_shezhi">
<shape>
<solid android:color="#564895" />
<corners
android:topLeftRadius="10dp"
android:topRightRadius="10dp"
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp" />
<stroke android:width="1dp" android:color="#564895" />
</shape>
</item>
不是的啊,只要有图片就不是圆角了?什么原因勒?
追答不要用@drawable 换成背景
追问嗯,但是我要做成有图片的圆角按钮该怎么做勒?是不是有其他的方法勒?非常谢谢您,如果帮我解决这个问题,我一定给你高分!再次谢谢!
追答首先用一个ImageButton 里面这个属性
android:src="@drawable/图片"
android:background="@drawable/圆角xml"
不知道这样算不算达到你要的效果
Android 实现隐私政策提示弹窗
button_shape.xml
<?xml version="1.0" encoding="utf-8" ?>
<!--相当于做了一张圆角的图片,然后给button作为背景图片-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--设置背景色-->
<solid android:color="#F59E27" />
<!--设置圆角-->
<corners android:radius="105dip" />
<padding
android:bottom="2dp"
android:left="33dp"
android:right="33dp"
android:top="2dp">
</padding>
</shape>
dialog_privacy_shape.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充色 -->
<solid android:color="#ffffff" />
<!-- 矩形圆角半径 -->
<corners android:radius="10dp" />
</shape>
dialog_privacy_show.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/dialog_privacy_shape"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/ll_btn_bottom"
android:layout_marginBottom="15dp"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="隐私政策授权提示"
android:textColor="#000000"
android:textSize="18sp" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:fadingEdgeLength="50dp"
android:requiresFadingEdge="horizontal">
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:singleLine="false"
android:text=""
android:textColor="#000000" />
</ScrollView>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_btn_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center"
>
<Button
android:id="@+id/btn_agree"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:layout_marginRight="15dp"
android:text="同意"
android:onClick="onClickAgree"
android:textColor="#FF0006"
android:background="@drawable/button_shape"/>
<Button
android:id="@+id/btn_disagree"
android:layout_width="130dp"
android:layout_marginBottom="2dp"
android:layout_height="wrap_content"
android:text="放弃使用"
android:onClick="onClickDisagree"
android:textColor="#000000"
android:background="@drawable/button_shape"/>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
新建assets文件夹
将隐私内容 privacy.txt 放入到assets文件夹中
activity_main.xml
<LinearLayout android:layout_width="match_parent"
android:layout_height="30dp"
android:orientation="horizontal"
android:gravity="center"
xmlns:android="http://schemas.android.com/apk/res/android">
</LinearLayout>
MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class MainActivity extends AppCompatActivity
Dialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showPrivacy("privacy.txt");//放在assets目录下的隐私政策文本文件
public void onClickAgree(View v)
dialog.dismiss();
public void onClickDisagree(View v)
finish();
public void showPrivacy(String privacyFileName)
String str = initAssets(privacyFileName);
final View inflate = LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog_privacy_show, null);
TextView tv_title = (TextView) inflate.findViewById(R.id.tv_title);
tv_title.setText("隐私政策授权提示");
TextView tv_content = (TextView) inflate.findViewById(R.id.tv_content);
tv_content.setText(str);
dialog = new AlertDialog
.Builder(MainActivity.this)
.setView(inflate)
.show();
// 通过WindowManager获取
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
final WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width = dm.widthPixels*4/5;
params.height = dm.heightPixels*1/2;
dialog.getWindow().setAttributes(params);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
/**
* 从assets下的txt文件中读取数据
*/
public String initAssets(String fileName)
String str = null;
try
InputStream inputStream = getAssets().open(fileName);
str = getString(inputStream);
catch (IOException e1)
e1.printStackTrace();
return str;
public static String getString(InputStream inputStream)
InputStreamReader inputStreamReader = null;
try
inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
catch (UnsupportedEncodingException e1)
e1.printStackTrace();
BufferedReader reader = new BufferedReader(inputStreamReader);
StringBuffer sb = new StringBuffer("");
String line;
try
while ((line = reader.readLine()) != null)
sb.append(line);
sb.append("\\n");
catch (IOException e)
e.printStackTrace();
return sb.toString();
以上是关于android shape 使用了一张资源图片,结果按钮就没有达到我想要的圆角效果,如下图:请高手指点,有代码的主要内容,如果未能解决你的问题,请参考以下文章
Android源码 在framework中加入一张图片资源,获取不到资源文件