我有一个按钮的线性布局,所以当我在不同的手机上运行应用程序时,一些按钮会被隐藏。由于我的应用程序在代码方面已经准备好所以我想要一些简短的技术使其兼容所有屏幕尺寸。
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
tools:context="com.example.android.hiha.MainActivity"
android:background="@drawable/main_activity_cover">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/tool_bar"
android:id="@+id/toolbar"></include>
<RelativeLayout
android:id="@+id/btn_list_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_below="@id/toolbar">
<include
layout="@layout/button_list"
android:id="@+id/button_list"></include>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/btn_list_layout"
android:layout_alignParentBottom="true"
android:gravity="bottom">
<include
layout="@layout/bottom_section_main"
android:id="@+id/bottom_section_main"></include>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
button_list.xml(横向)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp">
<ImageView
android:id="@+id/about_btn"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/about"
android:layout_gravity="center"
android:elevation="4dp"/>
<TextView
android:id="@+id/about_txt_view"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="About"
android:textStyle="bold"
android:gravity="center"
android:textColor="#FFFFFF"
android:layout_gravity="center"
android:layout_marginBottom="20dp"/>
<ImageView
android:id="@+id/digital_lib_btn"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/digital_library"
android:layout_gravity="center"
android:elevation="4dp"
android:onClick="onClick"/>
<TextView
android:id="@+id/digital_lib_txt_view"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="Digital Library"
android:textStyle="bold"
android:gravity="center"
android:textColor="#FFFFFF"
android:layout_gravity="center"
android:layout_marginBottom="20dp"/>
<ImageView
android:id="@+id/blogs_btn"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/blog"
android:layout_gravity="center"
android:elevation="4dp"
android:onClick="onClick"/>
<TextView
android:id="@+id/blogs_txt_view"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="Forums/Blogs"
android:textStyle="bold"
android:gravity="center"
android:textColor="#FFFFFF"
android:layout_gravity="center"
android:layout_marginBottom="10dp"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp">
<ImageView
android:id="@+id/affltd_organization_btn"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/organization"
android:layout_gravity="center"
android:elevation="4dp"
android:onClick="onClick"/>
<TextView
android:id="@+id/affltd_organization_txt_view"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="Organizations"
android:textStyle="bold"
android:gravity="center"
android:textColor="#FFFFFF"
android:layout_gravity="center"
android:layout_marginBottom="20dp"/>
<ImageView
android:id="@+id/gallery_btn"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/gallery"
android:layout_gravity="center"
android:elevation="4dp"
android:onClick="onClick"/>
<TextView
android:id="@+id/gallery_txt_view"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="Gallery"
android:textStyle="bold"
android:gravity="center"
android:textColor="#FFFFFF"
android:layout_gravity="center"
android:layout_marginBottom="20dp"/>
<ImageView
android:id="@+id/feedback_btn"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/feedback"
android:layout_gravity="center"
android:elevation="4dp"
android:onClick="onClick"/>
<TextView
android:id="@+id/feedback_txt_view"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="Feedback"
android:textStyle="bold"
android:gravity="center"
android:textColor="#FFFFFF"
android:layout_gravity="center"
android:layout_marginBottom="10dp"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp">
<ImageView
android:id="@+id/scientific_proof_btn"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/scientific_proof"
android:layout_gravity="center"
android:elevation="4dp"
android:onClick="onClick"/>
<TextView
android:id="@+id/scientific_proof_txt_view"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="Scientific Proof"
android:textStyle="bold"
android:gravity="center"
android:textColor="#FFFFFF"
android:layout_gravity="center"
android:layout_marginBottom="20dp"/>
<ImageView
android:id="@+id/tender_btn"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/tender"
android:layout_gravity="center"
android:elevation="4dp"
android:onClick="onClick"/>
<TextView
android:id="@+id/tender_txt_view"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="Tenders"
android:textStyle="bold"
android:gravity="center"
android:textColor="#FFFFFF"
android:layout_gravity="center"
android:layout_marginBottom="20dp"/>
<ImageView
android:id="@+id/contact_us_btn"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/contact"
android:layout_gravity="center"
android:elevation="4dp"
android:onClick="onClick"/>
<TextView
android:id="@+id/contact_us_txt_view"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="Contact Us"
android:textStyle="bold"
android:gravity="center"
android:textColor="#FFFFFF"
android:layout_gravity="center"
android:layout_marginBottom="10dp"/>
</LinearLayout>
</LinearLayout>
MainActivity.java
import android.app.Dialog;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
ImageView about_btn;
ImageView feedbackBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_PORTRAIT) {
setContentView(R.layout.activity_main);
} else {
setContentView(R.layout.activity_main);
}
about_btn=(ImageView)findViewById(R.id.about_btn);
about_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Create custom dialog object
final Dialog dialog = new Dialog(MainActivity.this);
// Include dialog.xml file
dialog.setContentView(R.layout.about_dialog);
// Set dialog title
dialog.setTitle("Choose one");
dialog.show();
ImageView sarasvati_btn = (ImageView) dialog.findViewById(R.id.sarasvati_btn);
sarasvati_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(MainActivity.this,Sarasvati_Activity.class);
startActivity(i);
dialog.dismiss();
}
});
ImageView about_btn_dialog=(ImageView) dialog.findViewById(R.id.about_btn_dialog);
about_btn_dialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(MainActivity.this,About_Us_Activity.class);
startActivity(i);
dialog.dismiss();
}
});
}
});
feedbackBtn=(ImageView)findViewById(R.id.feedback_btn);
facebook=(ImageView)findViewById(R.id.facebook_icon);
twitter=(ImageView)findViewById(R.id.twitter_icon);
youtube=(ImageView)findViewById(R.id.youtube_icon);
instagram=(ImageView)findViewById(R.id.instagram_icon);
}
public void onClick(View v){
switch (v.getId()){
case R.id.feedback_btn:
Intent j=new Intent(this,FeedbackActivity.class);
startActivity(j);
break;
case R.id.contact_us_btn:
Intent k=new Intent(this,Contact_Us_Activity.class);
startActivity(k);
break;
case R.id.affltd_organization_btn:
Intent gs = new Intent(this,AffiliatedOrganizationsActivity.class);
startActivity(gs);
break;
case R.id.gallery_btn:
Intent l=new Intent(this,Gallery.class);
startActivity(l);
break;
case R.id.scientific_proof_btn:
Intent sc=new Intent(this,Scientific_Evidences_Actiivity.class);
startActivity(sc);
break;
case R.id.blogs_btn:
Intent blogs=new Intent(this,BlogActivity.class);
startActivity(blogs);
break;
case R.id.tender_btn:
Intent tender=new Intent(this,WebViewActivity.class);
tender.putExtra("URL","url");
startActivity(tender);
break;
case R.id.digital_lib_btn:
Intent lib=new Intent(this,DigitalLibraryActivity.class);
startActivity(lib);
break;
default:
break;
}
}
@Override
public void onBackPressed() {
//Execute your code here
finish();
}
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
int orientation;
if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_PORTRAIT) {
orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
// or = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
}else {
orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
}
// Add code if needed
setRequestedOrientation(orientation);
}
}
答案 0 :(得分:2)
百分比相对布局 https://developer.android.com/reference/android/support/percent/PercentRelativeLayout.html
约束布局 https://developer.android.com/training/constraint-layout/index.html
答案 1 :(得分:1)
使用layout_weight。研究它们。我已经开始使用layout_weight,它们可以调整到任何屏幕大小。权重用于LinearLayouts和TableLayouts。可能会有更多,但这些是我使用它们的两个。如果你想在项目之间留出空格,请转到布局文本屏幕并输入
<View
然后按Enter键。它应该从那里引导你。观点也可以有重量。
答案 2 :(得分:0)
不要为按钮或TextView提供任何修复大小 根据您提供的上述代码
<ImageView
android:id="@+id/about_btn"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/about"
android:layout_gravity="center"
android:elevation="4dp"/>``
Imageview你为(高度和宽度)提供50dp的修正大小。图像视图当您运行不同的手机时,高度和宽度永远不会改变。 所以大多数使用Wrap_content和Match_Parent